summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDr. Stephen Henson <steve@openssl.org>2016-08-05 14:33:03 +0100
committerDr. Stephen Henson <steve@openssl.org>2016-08-16 00:23:07 +0100
commitff0571b10c5e95f72daed39a30e5b18667f4d51e (patch)
tree22ead60e6abdbab64a0209bcc41f44d300a49ba2
parent7a4979815b3ce7d280ed30b3b1df2a23481c2331 (diff)
Check for errors in a2d_ASN1_OBJECT()
Check for error return in BN_div_word(). Reviewed-by: Tim Hudson <tjh@openssl.org> (cherry picked from commit 8b9afbc0fc7f8be0049d389d34d9416fa377e2aa)
-rw-r--r--crypto/asn1/a_object.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/crypto/asn1/a_object.c b/crypto/asn1/a_object.c
index fba9f66454..229a40ffa3 100644
--- a/crypto/asn1/a_object.c
+++ b/crypto/asn1/a_object.c
@@ -174,8 +174,12 @@ int a2d_ASN1_OBJECT(unsigned char *out, int olen, const char *buf, int num)
if (!tmp)
goto err;
}
- while (blsize--)
- tmp[i++] = (unsigned char)BN_div_word(bl, 0x80L);
+ while (blsize--) {
+ BN_ULONG t = BN_div_word(bl, 0x80L);
+ if (t == (BN_ULONG)-1)
+ goto err;
+ tmp[i++] = (unsigned char)t;
+ }
} else {
for (;;) {