Convert BN_copy() with missing error checks to bn_copy()
authortb <tb@openbsd.org>
Mon, 27 Mar 2023 10:22:47 +0000 (10:22 +0000)
committertb <tb@openbsd.org>
Mon, 27 Mar 2023 10:22:47 +0000 (10:22 +0000)
ok jsing

lib/libcrypto/bn/bn_exp.c
lib/libcrypto/bn/bn_mul.c
lib/libcrypto/bn/bn_sqr.c
lib/libcrypto/rsa/rsa_gen.c

index 4944daa..b756d2b 100644 (file)
@@ -1,4 +1,4 @@
-/* $OpenBSD: bn_exp.c,v 1.42 2023/03/27 10:21:23 tb Exp $ */
+/* $OpenBSD: bn_exp.c,v 1.43 2023/03/27 10:22:47 tb Exp $ */
 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
  * All rights reserved.
  *
@@ -165,8 +165,10 @@ BN_exp(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx)
        ret = 1;
 
 err:
-       if (r != rr && rr != NULL)
-               BN_copy(r, rr);
+       if (r != rr && rr != NULL) {
+               if (!bn_copy(r, rr))
+                       ret = 0;
+       }
        BN_CTX_end(ctx);
        return (ret);
 }
index 5e270b9..3a33767 100644 (file)
@@ -1,4 +1,4 @@
-/* $OpenBSD: bn_mul.c,v 1.34 2023/02/22 05:57:19 jsing Exp $ */
+/* $OpenBSD: bn_mul.c,v 1.35 2023/03/27 10:22:47 tb Exp $ */
 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
  * All rights reserved.
  *
@@ -786,8 +786,10 @@ BN_mul(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, BN_CTX *ctx)
 
        BN_set_negative(rr, a->neg ^ b->neg);
 
-       if (r != rr)
-               BN_copy(r, rr);
+       if (r != rr) {
+               if (!bn_copy(r, rr))
+                       goto err;
+       }
  done:
        ret = 1;
  err:
index 6e78454..6641b77 100644 (file)
@@ -1,4 +1,4 @@
-/* $OpenBSD: bn_sqr.c,v 1.27 2023/02/17 05:13:34 jsing Exp $ */
+/* $OpenBSD: bn_sqr.c,v 1.28 2023/03/27 10:22:47 tb Exp $ */
 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
  * All rights reserved.
  *
@@ -404,8 +404,10 @@ BN_sqr(BIGNUM *r, const BIGNUM *a, BN_CTX *ctx)
 
        rr->neg = 0;
 
-       if (rr != r)
-               BN_copy(r, rr);
+       if (rr != r) {
+               if (!bn_copy(r, rr))
+                       goto err;
+       }
 
  done:
        ret = 1;
index 7aefa73..d4a4d60 100644 (file)
@@ -1,4 +1,4 @@
-/* $OpenBSD: rsa_gen.c,v 1.26 2022/11/26 16:08:54 tb Exp $ */
+/* $OpenBSD: rsa_gen.c,v 1.27 2023/03/27 10:22:47 tb Exp $ */
 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
  * All rights reserved.
  *
@@ -131,7 +131,8 @@ rsa_builtin_keygen(RSA *rsa, int bits, BIGNUM *e_value, BN_GENCB *cb)
        if (!rsa->iqmp && ((rsa->iqmp = BN_new()) == NULL))
                goto err;
 
-       BN_copy(rsa->e, e_value);
+       if (!bn_copy(rsa->e, e_value))
+               goto err;
 
        /* generate p and q */
        for (;;) {