bin2bn(): When len==0, just return a zero BIGNUM
This allows calls with s==NULL and len==0 to be safe.  It probably already
was, but address sanitizers could still complain.
@@ -446,6 +446,15 @@ static BIGNUM *bin2bn(const unsigned char *s, int len, BIGNUM *ret,
return NULL;
bn_check_top(ret);
+ /*
+ * If the input has no bits, the number is considered zero.
+ * This makes calls with s==NULL and len==0 safe.
+ */
+ if (len == 0) {
+ BN_clear(ret);
+ return ret;
+ }
+
/*
* The loop that does the work iterates from least to most
* significant BIGNUM chunk, so we adapt parameters to transfer
