Issue #7743:  Add checks for zero inputs to the lshift and mult functions;
this fixes the first bug described in issue #7743.
diff --git a/Python/dtoa.c b/Python/dtoa.c
index 6e11b9a..6a93aef 100644
--- a/Python/dtoa.c
+++ b/Python/dtoa.c
@@ -622,6 +622,15 @@
     ULong z2;
 #endif
 
+    if ((!a->x[0] && a->wds == 1) || (!b->x[0] && b->wds == 1)) {
+        c = Balloc(0);
+        if (c == NULL)
+            return NULL;
+        c->wds = 1;
+        c->x[0] = 0;
+        return c;
+    }
+
     if (a->wds < b->wds) {
         c = a;
         a = b;
@@ -820,6 +829,9 @@
     Bigint *b1;
     ULong *x, *x1, *xe, z;
 
+    if (!k || (!b->x[0] && b->wds == 1))
+        return b;
+
     n = k >> 5;
     k1 = b->k;
     n1 = n + b->wds + 1;