diff options
Diffstat (limited to 'crypto/asn1/f_string.c')
-rw-r--r-- | crypto/asn1/f_string.c | 25 |
1 files changed, 11 insertions, 14 deletions
diff --git a/crypto/asn1/f_string.c b/crypto/asn1/f_string.c index e9dcee8e86..c82f2a192d 100644 --- a/crypto/asn1/f_string.c +++ b/crypto/asn1/f_string.c @@ -95,7 +95,6 @@ int i2a_ASN1_STRING(BIO *bp, ASN1_STRING *a, int type) int a2i_ASN1_STRING(BIO *bp, ASN1_STRING *bs, char *buf, int size) { - int ret = 0; int i, j, k, m, n, again, bufsize; unsigned char *s = NULL, *sp; unsigned char *bufp; @@ -107,7 +106,7 @@ int a2i_ASN1_STRING(BIO *bp, ASN1_STRING *bs, char *buf, int size) if (first) break; else - goto err_sl; + goto err; } first = 0; @@ -115,11 +114,11 @@ int a2i_ASN1_STRING(BIO *bp, ASN1_STRING *bs, char *buf, int size) if (buf[i - 1] == '\n') buf[--i] = '\0'; if (i == 0) - goto err_sl; + goto err; if (buf[i - 1] == '\r') buf[--i] = '\0'; if (i == 0) - goto err_sl; + goto err; again = (buf[i - 1] == '\\'); for (j = i - 1; j > 0; j--) { @@ -145,7 +144,7 @@ int a2i_ASN1_STRING(BIO *bp, ASN1_STRING *bs, char *buf, int size) * We have now cleared all the crap off the end of the line */ if (i < 2) - goto err_sl; + goto err; bufp = (unsigned char *)buf; @@ -153,7 +152,7 @@ int a2i_ASN1_STRING(BIO *bp, ASN1_STRING *bs, char *buf, int size) i -= again; if (i % 2 != 0) { ASN1err(ASN1_F_A2I_ASN1_STRING, ASN1_R_ODD_NUMBER_OF_CHARS); - goto err; + return 0; } i /= 2; if (num + i > slen) { @@ -161,7 +160,7 @@ int a2i_ASN1_STRING(BIO *bp, ASN1_STRING *bs, char *buf, int size) if (sp == NULL) { ASN1err(ASN1_F_A2I_ASN1_STRING, ERR_R_MALLOC_FAILURE); OPENSSL_free(s); - goto err; + return 0; } s = sp; slen = num + i * 2; @@ -178,7 +177,7 @@ int a2i_ASN1_STRING(BIO *bp, ASN1_STRING *bs, char *buf, int size) else { ASN1err(ASN1_F_A2I_ASN1_STRING, ASN1_R_NON_HEX_CHARACTERS); - goto err; + return 0; } s[num + j] <<= 4; s[num + j] |= m; @@ -192,11 +191,9 @@ int a2i_ASN1_STRING(BIO *bp, ASN1_STRING *bs, char *buf, int size) } bs->length = num; bs->data = s; - ret = 1; + return 1; + err: - if (0) { - err_sl: - ASN1err(ASN1_F_A2I_ASN1_STRING, ASN1_R_SHORT_LINE); - } - return (ret); + ASN1err(ASN1_F_A2I_ASN1_STRING, ASN1_R_SHORT_LINE); + return 0; } |