summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/asn1/f_enum.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/libcrypto/asn1/f_enum.c')
-rw-r--r--src/lib/libcrypto/asn1/f_enum.c20
1 files changed, 6 insertions, 14 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;