豊福です。

  big2str_karatsuba で bigdivmod により求めた商と余りの Bignum
の長さが最適な長さと食い違わないようにします。
現在この食い違いがあっても幸い問題は起きませんが現状が望ましい
とは思えないので修正を提案します。

--- bignum.c.org
+++ bignum.c
@@ -1764,6 +1752,7 @@
        zds = BDIGITS(*divp);
        j = (nx==ny ? nx+2 : nx+1) - ny;
        for (i = 0;i < j;i++) zds[i] = zds[i+ny];
+       if (!zds[i-1]) i--;
        RBIGNUM_SET_LEN(*divp, i);
     }
     if (modp) {                        /* normalize remainder */
@@ -1779,6 +1768,7 @@
                t2 = BIGUP(q);
            }
        }
+       if (!zds[ny-1]) ny--;
        RBIGNUM_SET_LEN(*modp, ny);
        RBIGNUM_SET_SIGN(*modp, RBIGNUM_SIGN(x));
     }
---