summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/asn1/f_string.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_string.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_string.c')
-rw-r--r--src/lib/libcrypto/asn1/f_string.c13
1 files changed, 5 insertions, 8 deletions
diff --git a/src/lib/libcrypto/asn1/f_string.c b/src/lib/libcrypto/asn1/f_string.c
index 14cd1a906a..138044e063 100644
--- a/src/lib/libcrypto/asn1/f_string.c
+++ b/src/lib/libcrypto/asn1/f_string.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: f_string.c,v 1.16 2014/07/11 08:44:47 jsing Exp $ */ 1/* $OpenBSD: f_string.c,v 1.17 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 *
@@ -146,16 +146,14 @@ a2i_ASN1_STRING(BIO *bp, ASN1_STRING *bs, char *buf, int size)
146 k = 0; 146 k = 0;
147 i -= again; 147 i -= again;
148 if (i % 2 != 0) { 148 if (i % 2 != 0) {
149 ASN1err(ASN1_F_A2I_ASN1_STRING, 149 ASN1error(ASN1_R_ODD_NUMBER_OF_CHARS);
150 ASN1_R_ODD_NUMBER_OF_CHARS);
151 goto err; 150 goto err;
152 } 151 }
153 i /= 2; 152 i /= 2;
154 if (num + i > slen) { 153 if (num + i > slen) {
155 sp = realloc(s, num + i); 154 sp = realloc(s, num + i);
156 if (sp == NULL) { 155 if (sp == NULL) {
157 ASN1err(ASN1_F_A2I_ASN1_STRING, 156 ASN1error(ERR_R_MALLOC_FAILURE);
158 ERR_R_MALLOC_FAILURE);
159 goto err; 157 goto err;
160 } 158 }
161 s = sp; 159 s = sp;
@@ -171,8 +169,7 @@ a2i_ASN1_STRING(BIO *bp, ASN1_STRING *bs, char *buf, int size)
171 else if ((m >= 'A') && (m <= 'F')) 169 else if ((m >= 'A') && (m <= 'F'))
172 m = m - 'A' + 10; 170 m = m - 'A' + 10;
173 else { 171 else {
174 ASN1err(ASN1_F_A2I_ASN1_STRING, 172 ASN1error(ASN1_R_NON_HEX_CHARACTERS);
175 ASN1_R_NON_HEX_CHARACTERS);
176 goto err; 173 goto err;
177 } 174 }
178 s[num + j] <<= 4; 175 s[num + j] <<= 4;
@@ -190,7 +187,7 @@ a2i_ASN1_STRING(BIO *bp, ASN1_STRING *bs, char *buf, int size)
190 return (1); 187 return (1);
191 188
192err_sl: 189err_sl:
193 ASN1err(ASN1_F_A2I_ASN1_STRING, ASN1_R_SHORT_LINE); 190 ASN1error(ASN1_R_SHORT_LINE);
194err: 191err:
195 free(s); 192 free(s);
196 return (ret); 193 return (ret);