summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTheo de Raadt <deraadt@cvs.openbsd.org>2007-10-16 06:06:50 +0000
committerTheo de Raadt <deraadt@cvs.openbsd.org>2007-10-16 06:06:50 +0000
commit34c77c62d876eae153056388e21c73a29964c400 (patch)
tree152491e491fe3e85b98696e2cce7737d5c031ed5
parent861a8179aab10b8d4a585f385b99ce455781c996 (diff)
in the lex... even inside quotes, a \ followed by space or tab should
expand to space or tab, and a \ followed by newline should be ignored (as a line continuation). compatible with the needs of hoststated (which has the most strict quoted string requirements), and ifstated (where one commonly does line continuations in strings). pointed out by mpf, discussed with pyr
-rw-r--r--bin/chio/parse.y6
-rw-r--r--sbin/ipsecctl/parse.y6
-rw-r--r--sbin/pfctl/parse.y6
-rw-r--r--usr.sbin/bgpd/parse.y6
-rw-r--r--usr.sbin/dvmrpd/parse.y6
-rw-r--r--usr.sbin/hostapd/parse.y6
-rw-r--r--usr.sbin/hoststated/parse.y6
-rw-r--r--usr.sbin/ifstated/parse.y6
-rw-r--r--usr.sbin/ntpd/parse.y6
-rw-r--r--usr.sbin/ospf6d/parse.y6
-rw-r--r--usr.sbin/ospfd/parse.y6
-rw-r--r--usr.sbin/relayd/parse.y6
-rw-r--r--usr.sbin/ripd/parse.y6
13 files changed, 52 insertions, 26 deletions
diff --git a/bin/chio/parse.y b/bin/chio/parse.y
index 2f5dc35c3d3..b50440aafa6 100644
--- a/bin/chio/parse.y
+++ b/bin/chio/parse.y
@@ -1,4 +1,4 @@
-/* $OpenBSD: parse.y,v 1.8 2007/10/13 16:35:16 deraadt Exp $ */
+/* $OpenBSD: parse.y,v 1.9 2007/10/16 06:06:47 deraadt Exp $ */
/*
* Copyright (c) 2006 Bob Beck <beck@openbsd.org>
@@ -301,8 +301,10 @@ yylex(void)
} else if (c == '\\') {
if ((next = lgetc(quotec)) == EOF)
return (0);
- if (next == quotec)
+ if (next == quotec || c == ' ' || c == '\t')
c = next;
+ else if (next == '\n')
+ continue;
else
lungetc(next);
} else if (c == quotec) {
diff --git a/sbin/ipsecctl/parse.y b/sbin/ipsecctl/parse.y
index 0bfd11e8612..895c9d09052 100644
--- a/sbin/ipsecctl/parse.y
+++ b/sbin/ipsecctl/parse.y
@@ -1,4 +1,4 @@
-/* $OpenBSD: parse.y,v 1.128 2007/10/13 16:35:18 deraadt Exp $ */
+/* $OpenBSD: parse.y,v 1.129 2007/10/16 06:06:49 deraadt Exp $ */
/*
* Copyright (c) 2002, 2003, 2004 Henning Brauer <henning@openbsd.org>
@@ -1070,8 +1070,10 @@ top:
} else if (c == '\\') {
if ((next = lgetc(quotec)) == EOF)
return (0);
- if (next == quotec)
+ if (next == quotec || c == ' ' || c == '\t')
c = next;
+ else if (next == '\n')
+ continue;
else
lungetc(next);
} else if (c == quotec) {
diff --git a/sbin/pfctl/parse.y b/sbin/pfctl/parse.y
index 9abf4c5e280..4418a04c8e8 100644
--- a/sbin/pfctl/parse.y
+++ b/sbin/pfctl/parse.y
@@ -1,4 +1,4 @@
-/* $OpenBSD: parse.y,v 1.528 2007/10/13 21:49:13 deraadt Exp $ */
+/* $OpenBSD: parse.y,v 1.529 2007/10/16 06:06:49 deraadt Exp $ */
/*
* Copyright (c) 2001 Markus Friedl. All rights reserved.
@@ -5326,8 +5326,10 @@ top:
} else if (c == '\\') {
if ((next = lgetc(quotec)) == EOF)
return (0);
- if (next == quotec)
+ if (next == quotec || c == ' ' || c == '\t')
c = next;
+ else if (next == '\n')
+ continue;
else
lungetc(next);
} else if (c == quotec) {
diff --git a/usr.sbin/bgpd/parse.y b/usr.sbin/bgpd/parse.y
index 888f7b7bc97..0c2937196ab 100644
--- a/usr.sbin/bgpd/parse.y
+++ b/usr.sbin/bgpd/parse.y
@@ -1,4 +1,4 @@
-/* $OpenBSD: parse.y,v 1.210 2007/10/13 16:35:20 deraadt Exp $ */
+/* $OpenBSD: parse.y,v 1.211 2007/10/16 06:06:49 deraadt Exp $ */
/*
* Copyright (c) 2002, 2003, 2004 Henning Brauer <henning@openbsd.org>
@@ -2012,8 +2012,10 @@ top:
} else if (c == '\\') {
if ((next = lgetc(quotec)) == EOF)
return (0);
- if (next == quotec)
+ if (next == quotec || c == ' ' || c == '\t')
c = next;
+ else if (next == '\n')
+ continue;
else
lungetc(next);
} else if (c == quotec) {
diff --git a/usr.sbin/dvmrpd/parse.y b/usr.sbin/dvmrpd/parse.y
index 51ddb0dbc6e..595dd8f9dda 100644
--- a/usr.sbin/dvmrpd/parse.y
+++ b/usr.sbin/dvmrpd/parse.y
@@ -1,4 +1,4 @@
-/* $OpenBSD: parse.y,v 1.9 2007/10/13 16:35:20 deraadt Exp $ */
+/* $OpenBSD: parse.y,v 1.10 2007/10/16 06:06:49 deraadt Exp $ */
/*
* Copyright (c) 2004, 2005, 2006 Esben Norby <norby@openbsd.org>
@@ -558,8 +558,10 @@ top:
} else if (c == '\\') {
if ((next = lgetc(quotec)) == EOF)
return (0);
- if (next == quotec)
+ if (next == quotec || c == ' ' || c == '\t')
c = next;
+ else if (next == '\n')
+ continue;
else
lungetc(next);
} else if (c == quotec) {
diff --git a/usr.sbin/hostapd/parse.y b/usr.sbin/hostapd/parse.y
index 793c25bd3a0..e6e3c07b571 100644
--- a/usr.sbin/hostapd/parse.y
+++ b/usr.sbin/hostapd/parse.y
@@ -1,4 +1,4 @@
-/* $OpenBSD: parse.y,v 1.32 2007/10/13 16:35:20 deraadt Exp $ */
+/* $OpenBSD: parse.y,v 1.33 2007/10/16 06:06:49 deraadt Exp $ */
/*
* Copyright (c) 2004, 2005, 2006 Reyk Floeter <reyk@openbsd.org>
@@ -1479,8 +1479,10 @@ top:
} else if (c == '\\') {
if ((next = lgetc(quotec)) == EOF)
return (0);
- if (next == quotec)
+ if (next == quotec || c == ' ' || c == '\t')
c = next;
+ else if (next == '\n')
+ continue;
else
lungetc(next);
} else if (c == quotec) {
diff --git a/usr.sbin/hoststated/parse.y b/usr.sbin/hoststated/parse.y
index 0a09a74ce0f..388583ecadd 100644
--- a/usr.sbin/hoststated/parse.y
+++ b/usr.sbin/hoststated/parse.y
@@ -1,4 +1,4 @@
-/* $OpenBSD: parse.y,v 1.63 2007/10/13 16:35:21 deraadt Exp $ */
+/* $OpenBSD: parse.y,v 1.64 2007/10/16 06:06:49 deraadt Exp $ */
/*
* Copyright (c) 2006 Pierre-Yves Ritschard <pyr@openbsd.org>
@@ -1414,8 +1414,10 @@ top:
} else if (c == '\\') {
if ((next = lgetc(quotec)) == EOF)
return (0);
- if (next == quotec)
+ if (next == quotec || c == ' ' || c == '\t')
c = next;
+ else if (next == '\n')
+ continue;
else
lungetc(next);
} else if (c == quotec) {
diff --git a/usr.sbin/ifstated/parse.y b/usr.sbin/ifstated/parse.y
index af32be14a49..7cce4e88cf0 100644
--- a/usr.sbin/ifstated/parse.y
+++ b/usr.sbin/ifstated/parse.y
@@ -1,4 +1,4 @@
-/* $OpenBSD: parse.y,v 1.20 2007/10/13 16:35:21 deraadt Exp $ */
+/* $OpenBSD: parse.y,v 1.21 2007/10/16 06:06:49 deraadt Exp $ */
/*
* Copyright (c) 2004 Ryan McBride <mcbride@openbsd.org>
@@ -573,8 +573,10 @@ top:
} else if (c == '\\') {
if ((next = lgetc(quotec)) == EOF)
return (0);
- if (next == quotec)
+ if (next == quotec || c == ' ' || c == '\t')
c = next;
+ else if (next == '\n')
+ continue;
else
lungetc(next);
} else if (c == quotec) {
diff --git a/usr.sbin/ntpd/parse.y b/usr.sbin/ntpd/parse.y
index f81341ebed0..79d33b5dc0d 100644
--- a/usr.sbin/ntpd/parse.y
+++ b/usr.sbin/ntpd/parse.y
@@ -1,4 +1,4 @@
-/* $OpenBSD: parse.y,v 1.37 2007/10/13 16:35:21 deraadt Exp $ */
+/* $OpenBSD: parse.y,v 1.38 2007/10/16 06:06:49 deraadt Exp $ */
/*
* Copyright (c) 2002, 2003, 2004 Henning Brauer <henning@openbsd.org>
@@ -454,8 +454,10 @@ yylex(void)
} else if (c == '\\') {
if ((next = lgetc(quotec)) == EOF)
return (0);
- if (next == quotec)
+ if (next == quotec || c == ' ' || c == '\t')
c = next;
+ else if (next == '\n')
+ continue;
else
lungetc(next);
} else if (c == quotec) {
diff --git a/usr.sbin/ospf6d/parse.y b/usr.sbin/ospf6d/parse.y
index eb3cf9830e6..0a362674ee0 100644
--- a/usr.sbin/ospf6d/parse.y
+++ b/usr.sbin/ospf6d/parse.y
@@ -1,4 +1,4 @@
-/* $OpenBSD: parse.y,v 1.6 2007/10/13 16:35:22 deraadt Exp $ */
+/* $OpenBSD: parse.y,v 1.7 2007/10/16 06:06:49 deraadt Exp $ */
/*
* Copyright (c) 2004, 2005 Esben Norby <norby@openbsd.org>
@@ -742,8 +742,10 @@ top:
} else if (c == '\\') {
if ((next = lgetc(quotec)) == EOF)
return (0);
- if (next == quotec)
+ if (next == quotec || c == ' ' || c == '\t')
c = next;
+ else if (next == '\n')
+ continue;
else
lungetc(next);
} else if (c == quotec) {
diff --git a/usr.sbin/ospfd/parse.y b/usr.sbin/ospfd/parse.y
index 2951cadf3c2..aa39552955c 100644
--- a/usr.sbin/ospfd/parse.y
+++ b/usr.sbin/ospfd/parse.y
@@ -1,4 +1,4 @@
-/* $OpenBSD: parse.y,v 1.55 2007/10/13 16:35:22 deraadt Exp $ */
+/* $OpenBSD: parse.y,v 1.56 2007/10/16 06:06:49 deraadt Exp $ */
/*
* Copyright (c) 2004, 2005 Esben Norby <norby@openbsd.org>
@@ -844,8 +844,10 @@ top:
} else if (c == '\\') {
if ((next = lgetc(quotec)) == EOF)
return (0);
- if (next == quotec)
+ if (next == quotec || c == ' ' || c == '\t')
c = next;
+ else if (next == '\n')
+ continue;
else
lungetc(next);
} else if (c == quotec) {
diff --git a/usr.sbin/relayd/parse.y b/usr.sbin/relayd/parse.y
index 0a09a74ce0f..388583ecadd 100644
--- a/usr.sbin/relayd/parse.y
+++ b/usr.sbin/relayd/parse.y
@@ -1,4 +1,4 @@
-/* $OpenBSD: parse.y,v 1.63 2007/10/13 16:35:21 deraadt Exp $ */
+/* $OpenBSD: parse.y,v 1.64 2007/10/16 06:06:49 deraadt Exp $ */
/*
* Copyright (c) 2006 Pierre-Yves Ritschard <pyr@openbsd.org>
@@ -1414,8 +1414,10 @@ top:
} else if (c == '\\') {
if ((next = lgetc(quotec)) == EOF)
return (0);
- if (next == quotec)
+ if (next == quotec || c == ' ' || c == '\t')
c = next;
+ else if (next == '\n')
+ continue;
else
lungetc(next);
} else if (c == quotec) {
diff --git a/usr.sbin/ripd/parse.y b/usr.sbin/ripd/parse.y
index cf8192e7b29..14164dd322e 100644
--- a/usr.sbin/ripd/parse.y
+++ b/usr.sbin/ripd/parse.y
@@ -1,4 +1,4 @@
-/* $OpenBSD: parse.y,v 1.10 2007/10/13 16:35:22 deraadt Exp $ */
+/* $OpenBSD: parse.y,v 1.11 2007/10/16 06:06:49 deraadt Exp $ */
/*
* Copyright (c) 2006 Michele Marchetto <mydecay@openbeer.it>
@@ -567,8 +567,10 @@ top:
} else if (c == '\\') {
if ((next = lgetc(quotec)) == EOF)
return (0);
- if (next == quotec)
+ if (next == quotec || c == ' ' || c == '\t')
c = next;
+ else if (next == '\n')
+ continue;
else
lungetc(next);
} else if (c == quotec) {