diff options
author | beck <> | 2017-01-29 17:49:23 +0000 |
---|---|---|
committer | beck <> | 2017-01-29 17:49:23 +0000 |
commit | 957b11334a7afb14537322f0e4795b2e368b3f59 (patch) | |
tree | 1a54abba678898ee5270ae4f3404a50ee9a92eea /src/lib/libcrypto/asn1/f_string.c | |
parent | df96e020e729c6c37a8c7fe311fdd1fe6a8718c5 (diff) | |
download | openbsd-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.c | 13 |
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 | ||
192 | err_sl: | 189 | err_sl: |
193 | ASN1err(ASN1_F_A2I_ASN1_STRING, ASN1_R_SHORT_LINE); | 190 | ASN1error(ASN1_R_SHORT_LINE); |
194 | err: | 191 | err: |
195 | free(s); | 192 | free(s); |
196 | return (ret); | 193 | return (ret); |