summaryrefslogtreecommitdiffstats
path: root/crypto/bn
diff options
context:
space:
mode:
authorHugo Landau <hlandau@openssl.org>2022-04-04 12:25:16 +0100
committerPauli <pauli@openssl.org>2022-04-07 10:36:30 +1000
commitbc6bac8561ead83d6135f376ffcbbb0b657e64fe (patch)
tree427e59f17b9374a33154018737367730c7d8522a /crypto/bn
parent948cf521798a801cfde47a137343e6f958d71f04 (diff)
Fix failure to check result of bn_rshift_fixed_top
Fixes #18010. Reviewed-by: Matt Caswell <matt@openssl.org> Reviewed-by: Paul Dale <pauli@openssl.org> (Merged from https://github.com/openssl/openssl/pull/18034)
Diffstat (limited to 'crypto/bn')
-rw-r--r--crypto/bn/bn_div.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/crypto/bn/bn_div.c b/crypto/bn/bn_div.c
index 25514c05f1..ec6c532e4e 100644
--- a/crypto/bn/bn_div.c
+++ b/crypto/bn/bn_div.c
@@ -446,8 +446,10 @@ int bn_div_fixed_top(BIGNUM *dv, BIGNUM *rm, const BIGNUM *num,
snum->neg = num_neg;
snum->top = div_n;
snum->flags |= BN_FLG_FIXED_TOP;
- if (rm != NULL)
- bn_rshift_fixed_top(rm, snum, norm_shift);
+
+ if (rm != NULL && bn_rshift_fixed_top(rm, snum, norm_shift) == 0)
+ goto err;
+
BN_CTX_end(ctx);
return 1;
err: