summaryrefslogtreecommitdiff
path: root/Cryptlib/OpenSSL/crypto/asn1/a_object.c
diff options
context:
space:
mode:
authorGary Lin <glin@suse.com>2016-10-13 15:57:25 +0800
committerPeter Jones <pjones@redhat.com>2016-11-30 12:57:34 -0500
commitb371a682fb67ff945a8095437b9b33cab549bb49 (patch)
tree55aa1f4552b1c96dbfd1b110e210cb7471ee06e4 /Cryptlib/OpenSSL/crypto/asn1/a_object.c
parent43ad947f6e7d1e899d86fd8ca66a55ffbc3ed2b2 (diff)
downloadefi-boot-shim-b371a682fb67ff945a8095437b9b33cab549bb49.tar.gz
efi-boot-shim-b371a682fb67ff945a8095437b9b33cab549bb49.zip
Update to openssl 1.0.2j
Signed-off-by: Gary Lin <glin@suse.com>
Diffstat (limited to 'Cryptlib/OpenSSL/crypto/asn1/a_object.c')
-rw-r--r--Cryptlib/OpenSSL/crypto/asn1/a_object.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/Cryptlib/OpenSSL/crypto/asn1/a_object.c b/Cryptlib/OpenSSL/crypto/asn1/a_object.c
index 27f9c169..229a40ff 100644
--- a/Cryptlib/OpenSSL/crypto/asn1/a_object.c
+++ b/Cryptlib/OpenSSL/crypto/asn1/a_object.c
@@ -73,7 +73,7 @@ int i2d_ASN1_OBJECT(ASN1_OBJECT *a, unsigned char **pp)
return (0);
objsize = ASN1_object_size(0, a->length, V_ASN1_OBJECT);
- if (pp == NULL)
+ if (pp == NULL || objsize == -1)
return objsize;
p = *pp;
@@ -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 (;;) {