summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/asn1/f_int.c
diff options
context:
space:
mode:
authorbeck <>2017-01-29 17:49:23 +0000
committerbeck <>2017-01-29 17:49:23 +0000
commit957b11334a7afb14537322f0e4795b2e368b3f59 (patch)
tree1a54abba678898ee5270ae4f3404a50ee9a92eea /src/lib/libcrypto/asn1/f_int.c
parentdf96e020e729c6c37a8c7fe311fdd1fe6a8718c5 (diff)
downloadopenbsd-957b11334a7afb14537322f0e4795b2e368b3f59.tar.gz
openbsd-957b11334a7afb14537322f0e4795b2e368b3f59.tar.bz2
openbsd-957b11334a7afb14537322f0e4795b2e368b3f59.zip
Send the function codes from the error functions to the bit bucket,
as was done earlier in libssl. Thanks inoguchi@ for noticing libssl had more reacharounds into this. ok jsing@ inoguchi@
Diffstat (limited to 'src/lib/libcrypto/asn1/f_int.c')
-rw-r--r--src/lib/libcrypto/asn1/f_int.c13
1 files changed, 5 insertions, 8 deletions
diff --git a/src/lib/libcrypto/asn1/f_int.c b/src/lib/libcrypto/asn1/f_int.c
index 0ec29f5769..75168872b3 100644
--- a/src/lib/libcrypto/asn1/f_int.c
+++ b/src/lib/libcrypto/asn1/f_int.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: f_int.c,v 1.17 2014/07/11 08:44:47 jsing Exp $ */ 1/* $OpenBSD: f_int.c,v 1.18 2017/01/29 17:49:22 beck Exp $ */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved. 3 * All rights reserved.
4 * 4 *
@@ -153,16 +153,14 @@ a2i_ASN1_INTEGER(BIO *bp, ASN1_INTEGER *bs, char *buf, int size)
153 k = 0; 153 k = 0;
154 i -= again; 154 i -= again;
155 if (i % 2 != 0) { 155 if (i % 2 != 0) {
156 ASN1err(ASN1_F_A2I_ASN1_INTEGER, 156 ASN1error(ASN1_R_ODD_NUMBER_OF_CHARS);
157 ASN1_R_ODD_NUMBER_OF_CHARS);
158 goto err; 157 goto err;
159 } 158 }
160 i /= 2; 159 i /= 2;
161 if (num + i > slen) { 160 if (num + i > slen) {
162 sp = OPENSSL_realloc_clean(s, slen, num + i); 161 sp = OPENSSL_realloc_clean(s, slen, num + i);
163 if (sp == NULL) { 162 if (sp == NULL) {
164 ASN1err(ASN1_F_A2I_ASN1_INTEGER, 163 ASN1error(ERR_R_MALLOC_FAILURE);
165 ERR_R_MALLOC_FAILURE);
166 goto err; 164 goto err;
167 } 165 }
168 s = sp; 166 s = sp;
@@ -178,8 +176,7 @@ a2i_ASN1_INTEGER(BIO *bp, ASN1_INTEGER *bs, char *buf, int size)
178 else if ((m >= 'A') && (m <= 'F')) 176 else if ((m >= 'A') && (m <= 'F'))
179 m = m - 'A' + 10; 177 m = m - 'A' + 10;
180 else { 178 else {
181 ASN1err(ASN1_F_A2I_ASN1_INTEGER, 179 ASN1error(ASN1_R_NON_HEX_CHARACTERS);
182 ASN1_R_NON_HEX_CHARACTERS);
183 goto err; 180 goto err;
184 } 181 }
185 s[num + j] <<= 4; 182 s[num + j] <<= 4;
@@ -197,7 +194,7 @@ a2i_ASN1_INTEGER(BIO *bp, ASN1_INTEGER *bs, char *buf, int size)
197 return (1); 194 return (1);
198 195
199err_sl: 196err_sl:
200 ASN1err(ASN1_F_A2I_ASN1_INTEGER, ASN1_R_SHORT_LINE); 197 ASN1error(ASN1_R_SHORT_LINE);
201err: 198err:
202 free(s); 199 free(s);
203 return (ret); 200 return (ret);