diff options
| author | beck <> | 2017-01-29 17:49:23 +0000 |
|---|---|---|
| committer | beck <> | 2017-01-29 17:49:23 +0000 |
| commit | d1f47bd292f36094480caa49ada36b99a69c59b0 (patch) | |
| tree | 1a54abba678898ee5270ae4f3404a50ee9a92eea /src/lib/libcrypto/asn1/a_object.c | |
| parent | f8c627888330b75c2eea8a3c27d0efe947a4f9da (diff) | |
| download | openbsd-d1f47bd292f36094480caa49ada36b99a69c59b0.tar.gz openbsd-d1f47bd292f36094480caa49ada36b99a69c59b0.tar.bz2 openbsd-d1f47bd292f36094480caa49ada36b99a69c59b0.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/a_object.c')
| -rw-r--r-- | src/lib/libcrypto/asn1/a_object.c | 29 |
1 files changed, 12 insertions, 17 deletions
diff --git a/src/lib/libcrypto/asn1/a_object.c b/src/lib/libcrypto/asn1/a_object.c index 44694d2ba7..711b01f149 100644 --- a/src/lib/libcrypto/asn1/a_object.c +++ b/src/lib/libcrypto/asn1/a_object.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: a_object.c,v 1.28 2016/11/06 17:04:48 bcook Exp $ */ | 1 | /* $OpenBSD: a_object.c,v 1.29 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 | * |
| @@ -109,12 +109,12 @@ a2d_ASN1_OBJECT(unsigned char *out, int olen, const char *buf, int num) | |||
| 109 | if ((c >= '0') && (c <= '2')) { | 109 | if ((c >= '0') && (c <= '2')) { |
| 110 | first= c-'0'; | 110 | first= c-'0'; |
| 111 | } else { | 111 | } else { |
| 112 | ASN1err(ASN1_F_A2D_ASN1_OBJECT, ASN1_R_FIRST_NUM_TOO_LARGE); | 112 | ASN1error(ASN1_R_FIRST_NUM_TOO_LARGE); |
| 113 | goto err; | 113 | goto err; |
| 114 | } | 114 | } |
| 115 | 115 | ||
| 116 | if (num <= 0) { | 116 | if (num <= 0) { |
| 117 | ASN1err(ASN1_F_A2D_ASN1_OBJECT, ASN1_R_MISSING_SECOND_NUMBER); | 117 | ASN1error(ASN1_R_MISSING_SECOND_NUMBER); |
| 118 | goto err; | 118 | goto err; |
| 119 | } | 119 | } |
| 120 | c = *(p++); | 120 | c = *(p++); |
| @@ -123,8 +123,7 @@ a2d_ASN1_OBJECT(unsigned char *out, int olen, const char *buf, int num) | |||
| 123 | if (num <= 0) | 123 | if (num <= 0) |
| 124 | break; | 124 | break; |
| 125 | if ((c != '.') && (c != ' ')) { | 125 | if ((c != '.') && (c != ' ')) { |
| 126 | ASN1err(ASN1_F_A2D_ASN1_OBJECT, | 126 | ASN1error(ASN1_R_INVALID_SEPARATOR); |
| 127 | ASN1_R_INVALID_SEPARATOR); | ||
| 128 | goto err; | 127 | goto err; |
| 129 | } | 128 | } |
| 130 | l = 0; | 129 | l = 0; |
| @@ -137,8 +136,7 @@ a2d_ASN1_OBJECT(unsigned char *out, int olen, const char *buf, int num) | |||
| 137 | if ((c == ' ') || (c == '.')) | 136 | if ((c == ' ') || (c == '.')) |
| 138 | break; | 137 | break; |
| 139 | if ((c < '0') || (c > '9')) { | 138 | if ((c < '0') || (c > '9')) { |
| 140 | ASN1err(ASN1_F_A2D_ASN1_OBJECT, | 139 | ASN1error(ASN1_R_INVALID_DIGIT); |
| 141 | ASN1_R_INVALID_DIGIT); | ||
| 142 | goto err; | 140 | goto err; |
| 143 | } | 141 | } |
| 144 | if (!use_bn && l >= ((ULONG_MAX - 80) / 10L)) { | 142 | if (!use_bn && l >= ((ULONG_MAX - 80) / 10L)) { |
| @@ -157,8 +155,7 @@ a2d_ASN1_OBJECT(unsigned char *out, int olen, const char *buf, int num) | |||
| 157 | } | 155 | } |
| 158 | if (len == 0) { | 156 | if (len == 0) { |
| 159 | if ((first < 2) && (l >= 40)) { | 157 | if ((first < 2) && (l >= 40)) { |
| 160 | ASN1err(ASN1_F_A2D_ASN1_OBJECT, | 158 | ASN1error(ASN1_R_SECOND_NUMBER_TOO_LARGE); |
| 161 | ASN1_R_SECOND_NUMBER_TOO_LARGE); | ||
| 162 | goto err; | 159 | goto err; |
| 163 | } | 160 | } |
| 164 | if (use_bn) { | 161 | if (use_bn) { |
| @@ -194,8 +191,7 @@ a2d_ASN1_OBJECT(unsigned char *out, int olen, const char *buf, int num) | |||
| 194 | } | 191 | } |
| 195 | if (out != NULL) { | 192 | if (out != NULL) { |
| 196 | if (len + i > olen) { | 193 | if (len + i > olen) { |
| 197 | ASN1err(ASN1_F_A2D_ASN1_OBJECT, | 194 | ASN1error(ASN1_R_BUFFER_TOO_SMALL); |
| 198 | ASN1_R_BUFFER_TOO_SMALL); | ||
| 199 | goto err; | 195 | goto err; |
| 200 | } | 196 | } |
| 201 | while (--i > 0) | 197 | while (--i > 0) |
| @@ -277,7 +273,7 @@ d2i_ASN1_OBJECT(ASN1_OBJECT **a, const unsigned char **pp, long length) | |||
| 277 | return ret; | 273 | return ret; |
| 278 | 274 | ||
| 279 | err: | 275 | err: |
| 280 | ASN1err(ASN1_F_D2I_ASN1_OBJECT, i); | 276 | ASN1error(i); |
| 281 | return (NULL); | 277 | return (NULL); |
| 282 | } | 278 | } |
| 283 | 279 | ||
| @@ -297,7 +293,7 @@ c2i_ASN1_OBJECT(ASN1_OBJECT **a, const unsigned char **pp, long len) | |||
| 297 | */ | 293 | */ |
| 298 | if (len <= 0 || len > INT_MAX || pp == NULL || (p = *pp) == NULL || | 294 | if (len <= 0 || len > INT_MAX || pp == NULL || (p = *pp) == NULL || |
| 299 | p[len - 1] & 0x80) { | 295 | p[len - 1] & 0x80) { |
| 300 | ASN1err(ASN1_F_C2I_ASN1_OBJECT, ASN1_R_INVALID_OBJECT_ENCODING); | 296 | ASN1error(ASN1_R_INVALID_OBJECT_ENCODING); |
| 301 | return (NULL); | 297 | return (NULL); |
| 302 | } | 298 | } |
| 303 | 299 | ||
| @@ -305,8 +301,7 @@ c2i_ASN1_OBJECT(ASN1_OBJECT **a, const unsigned char **pp, long len) | |||
| 305 | length = (int)len; | 301 | length = (int)len; |
| 306 | for (i = 0; i < length; i++, p++) { | 302 | for (i = 0; i < length; i++, p++) { |
| 307 | if (*p == 0x80 && (!i || !(p[-1] & 0x80))) { | 303 | if (*p == 0x80 && (!i || !(p[-1] & 0x80))) { |
| 308 | ASN1err(ASN1_F_C2I_ASN1_OBJECT, | 304 | ASN1error(ASN1_R_INVALID_OBJECT_ENCODING); |
| 309 | ASN1_R_INVALID_OBJECT_ENCODING); | ||
| 310 | return (NULL); | 305 | return (NULL); |
| 311 | } | 306 | } |
| 312 | } | 307 | } |
| @@ -330,7 +325,7 @@ c2i_ASN1_OBJECT(ASN1_OBJECT **a, const unsigned char **pp, long len) | |||
| 330 | 325 | ||
| 331 | data = malloc(length); | 326 | data = malloc(length); |
| 332 | if (data == NULL) { | 327 | if (data == NULL) { |
| 333 | ASN1err(ASN1_F_C2I_ASN1_OBJECT, ERR_R_MALLOC_FAILURE); | 328 | ASN1error(ERR_R_MALLOC_FAILURE); |
| 334 | goto err; | 329 | goto err; |
| 335 | } | 330 | } |
| 336 | 331 | ||
| @@ -362,7 +357,7 @@ ASN1_OBJECT_new(void) | |||
| 362 | 357 | ||
| 363 | ret = malloc(sizeof(ASN1_OBJECT)); | 358 | ret = malloc(sizeof(ASN1_OBJECT)); |
| 364 | if (ret == NULL) { | 359 | if (ret == NULL) { |
| 365 | ASN1err(ASN1_F_ASN1_OBJECT_NEW, ERR_R_MALLOC_FAILURE); | 360 | ASN1error(ERR_R_MALLOC_FAILURE); |
| 366 | return (NULL); | 361 | return (NULL); |
| 367 | } | 362 | } |
| 368 | ret->length = 0; | 363 | ret->length = 0; |
