diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/lib/libcrypto/asn1/f_enum.c | 20 | ||||
| -rw-r--r-- | src/lib/libcrypto/asn1/f_int.c | 20 |
2 files changed, 12 insertions, 28 deletions
diff --git a/src/lib/libcrypto/asn1/f_enum.c b/src/lib/libcrypto/asn1/f_enum.c index cc4b7dfc91..e525670572 100644 --- a/src/lib/libcrypto/asn1/f_enum.c +++ b/src/lib/libcrypto/asn1/f_enum.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: f_enum.c,v 1.16 2018/04/25 11:48:21 tb Exp $ */ | 1 | /* $OpenBSD: f_enum.c,v 1.17 2021/11/23 11:10:51 schwarze 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 | * |
| @@ -123,19 +123,12 @@ a2i_ASN1_ENUMERATED(BIO *bp, ASN1_ENUMERATED *bs, char *buf, int size) | |||
| 123 | buf[--i] = '\0'; | 123 | buf[--i] = '\0'; |
| 124 | if (i == 0) | 124 | if (i == 0) |
| 125 | goto err_sl; | 125 | goto err_sl; |
| 126 | again = (buf[i - 1] == '\\'); | 126 | if (buf[i - 1] == '\\') { |
| 127 | 127 | i--; | |
| 128 | for (j = 0; j < i; j++) { | 128 | again = 1; |
| 129 | if (!(((buf[j] >= '0') && (buf[j] <= '9')) || | 129 | } else |
| 130 | ((buf[j] >= 'a') && (buf[j] <= 'f')) || | 130 | again = 0; |
| 131 | ((buf[j] >= 'A') && (buf[j] <= 'F')))) { | ||
| 132 | i = j; | ||
| 133 | break; | ||
| 134 | } | ||
| 135 | } | ||
| 136 | buf[i] = '\0'; | 131 | buf[i] = '\0'; |
| 137 | /* We have now cleared all the crap off the end of the | ||
| 138 | * line */ | ||
| 139 | if (i < 2) | 132 | if (i < 2) |
| 140 | goto err_sl; | 133 | goto err_sl; |
| 141 | 134 | ||
| @@ -148,7 +141,6 @@ a2i_ASN1_ENUMERATED(BIO *bp, ASN1_ENUMERATED *bs, char *buf, int size) | |||
| 148 | } | 141 | } |
| 149 | } | 142 | } |
| 150 | k = 0; | 143 | k = 0; |
| 151 | i -= again; | ||
| 152 | if (i % 2 != 0) { | 144 | if (i % 2 != 0) { |
| 153 | ASN1error(ASN1_R_ODD_NUMBER_OF_CHARS); | 145 | ASN1error(ASN1_R_ODD_NUMBER_OF_CHARS); |
| 154 | goto err; | 146 | goto err; |
diff --git a/src/lib/libcrypto/asn1/f_int.c b/src/lib/libcrypto/asn1/f_int.c index d03fafe87d..8ce9d20d5f 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.20 2018/05/13 13:48:08 jsing Exp $ */ | 1 | /* $OpenBSD: f_int.c,v 1.21 2021/11/23 11:10:51 schwarze 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 | * |
| @@ -126,19 +126,12 @@ a2i_ASN1_INTEGER(BIO *bp, ASN1_INTEGER *bs, char *buf, int size) | |||
| 126 | buf[--i] = '\0'; | 126 | buf[--i] = '\0'; |
| 127 | if (i == 0) | 127 | if (i == 0) |
| 128 | goto err_sl; | 128 | goto err_sl; |
| 129 | again = (buf[i - 1] == '\\'); | 129 | if (buf[i - 1] == '\\') { |
| 130 | 130 | i--; | |
| 131 | for (j = 0; j < i; j++) { | 131 | again = 1; |
| 132 | if (!(((buf[j] >= '0') && (buf[j] <= '9')) || | 132 | } else |
| 133 | ((buf[j] >= 'a') && (buf[j] <= 'f')) || | 133 | again = 0; |
| 134 | ((buf[j] >= 'A') && (buf[j] <= 'F')))) { | ||
| 135 | i = j; | ||
| 136 | break; | ||
| 137 | } | ||
| 138 | } | ||
| 139 | buf[i] = '\0'; | 134 | buf[i] = '\0'; |
| 140 | /* We have now cleared all the crap off the end of the | ||
| 141 | * line */ | ||
| 142 | if (i < 2) | 135 | if (i < 2) |
| 143 | goto err_sl; | 136 | goto err_sl; |
| 144 | 137 | ||
| @@ -151,7 +144,6 @@ a2i_ASN1_INTEGER(BIO *bp, ASN1_INTEGER *bs, char *buf, int size) | |||
| 151 | } | 144 | } |
| 152 | } | 145 | } |
| 153 | k = 0; | 146 | k = 0; |
| 154 | i -= again; | ||
| 155 | if (i % 2 != 0) { | 147 | if (i % 2 != 0) { |
| 156 | ASN1error(ASN1_R_ODD_NUMBER_OF_CHARS); | 148 | ASN1error(ASN1_R_ODD_NUMBER_OF_CHARS); |
| 157 | goto err; | 149 | goto err; |
