Don't call memcpy with NULL as source
authorKurt Roeckx <kurt@roeckx.be>
Thu, 15 Dec 2016 19:23:52 +0000 (20:23 +0100)
committerKurt Roeckx <kurt@roeckx.be>
Thu, 15 Dec 2016 20:45:25 +0000 (21:45 +0100)
Calling it with lenght 0 and NULL as source is undefined behaviour.

Reviewed-by: Rich Salz <rsalz@openssl.org>
GH: #2089

crypto/bn/bn_intern.c

index 9227b6e..2c97064 100644 (file)
@@ -167,7 +167,8 @@ int bn_copy_words(BN_ULONG *out, const BIGNUM *in, int size)
         return 0;
 
     memset(out, 0, sizeof(*out) * size);
-    memcpy(out, in->d, sizeof(*out) * in->top);
+    if (in->d != NULL)
+        memcpy(out, in->d, sizeof(*out) * in->top);
     return 1;
 }