Remove some unreachable character types in the CONF parser
DQUOTE and FCOMMENT are remnants of a second parser in OpenSSL. OpenSSL
has CONF_type_default, which is the one we imported, and CONF_type_win32
which is a different syntax which looks to be modeled after Windows ini
files. DQUOTE and FCOMMENT only exist in this one.
Change-Id: Iffa01fcb012b0f3e7f8dbf87a01ba867bdc7bcc7
Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/60087
Reviewed-by: Adam Langley <agl@google.com>
Commit-Queue: David Benjamin <davidben@google.com>
diff --git a/crypto/conf/conf.c b/crypto/conf/conf.c
index 3e95e8b..14caa70 100644
--- a/crypto/conf/conf.c
+++ b/crypto/conf/conf.c
@@ -228,22 +228,6 @@
if (*from == q) {
from++;
}
- } else if (IS_DQUOTE(conf, *from)) {
- q = *from;
- from++;
- while (!IS_EOF(conf, *from)) {
- if (*from == q) {
- if (*(from + 1) == q) {
- from++;
- } else {
- break;
- }
- }
- buf->data[to++] = *(from++);
- }
- if (*from == q) {
- from++;
- }
} else if (IS_ESC(conf, *from)) {
from++;
v = *(from++);
@@ -454,33 +438,8 @@
return p;
}
-
-static char *scan_dquote(CONF *conf, char *p) {
- int q = *p;
-
- p++;
- while (!(IS_EOF(conf, *p))) {
- if (*p == q) {
- if (*(p + 1) == q) {
- p++;
- } else {
- break;
- }
- }
- p++;
- }
- if (*p == q) {
- p++;
- }
- return p;
-}
-
static void clear_comments(CONF *conf, char *p) {
for (;;) {
- if (IS_FCOMMENT(conf, *p)) {
- *p = '\0';
- return;
- }
if (!IS_WS(conf, *p)) {
break;
}
@@ -492,10 +451,6 @@
*p = '\0';
return;
}
- if (IS_DQUOTE(conf, *p)) {
- p = scan_dquote(conf, p);
- continue;
- }
if (IS_QUOTE(conf, *p)) {
p = scan_quote(conf, p);
continue;
diff --git a/crypto/conf/conf_def.h b/crypto/conf/conf_def.h
index f01a79b..d2c285a 100644
--- a/crypto/conf/conf_def.h
+++ b/crypto/conf/conf_def.h
@@ -55,8 +55,9 @@
* [including the GNU Public Licence.]
*/
-/* THIS FILE WAS AUTOMAGICALLY GENERATED!
- Please modify and use keysets.pl to regenerate it. */
+// This file was historically generated by keysets.pl in OpenSSL.
+//
+// TODO(davidben): Replace it with something more readable.
#define CONF_NUMBER 1
#define CONF_UPPER 2
@@ -66,9 +67,7 @@
#define CONF_WS 16
#define CONF_ESC 32
#define CONF_QUOTE 64
-#define CONF_DQUOTE 1024
#define CONF_COMMENT 128
-#define CONF_FCOMMENT 2048
#define CONF_EOF 8
#define CONF_HIGHBIT 4096
#define CONF_ALPHA (CONF_UPPER|CONF_LOWER)
@@ -78,7 +77,6 @@
#define KEYTYPES(c) CONF_type_default
#define IS_COMMENT(c,a) (KEYTYPES(c)[(a)&0xff]&CONF_COMMENT)
-#define IS_FCOMMENT(c,a) (KEYTYPES(c)[(a)&0xff]&CONF_FCOMMENT)
#define IS_EOF(c,a) (KEYTYPES(c)[(a)&0xff]&CONF_EOF)
#define IS_ESC(c,a) (KEYTYPES(c)[(a)&0xff]&CONF_ESC)
#define IS_NUMBER(c,a) (KEYTYPES(c)[(a)&0xff]&CONF_NUMBER)
@@ -87,8 +85,6 @@
#define IS_ALPHA_NUMERIC_PUNCT(c,a) \
(KEYTYPES(c)[(a)&0xff]&CONF_ALPHA_NUMERIC_PUNCT)
#define IS_QUOTE(c,a) (KEYTYPES(c)[(a)&0xff]&CONF_QUOTE)
-#define IS_DQUOTE(c,a) (KEYTYPES(c)[(a)&0xff]&CONF_DQUOTE)
-#define IS_HIGHBIT(c,a) (KEYTYPES(c)[(a)&0xff]&CONF_HIGHBIT)
static const unsigned short CONF_type_default[256]={
0x0008,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,