From: Michael Rash Date: Mon, 5 Jan 2004 09:41:50 +0000 (+0000) Subject: allow embedding of quote character inside quoted string (Michael Rash) X-Git-Tag: v1.3.0-rc1~151 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=29cdbd047cdc757aec98db308114c1c250ae0d22;p=thirdparty%2Fiptables.git allow embedding of quote character inside quoted string (Michael Rash) --- diff --git a/ip6tables-restore.c b/ip6tables-restore.c index ecda8702..cc60e234 100644 --- a/ip6tables-restore.c +++ b/ip6tables-restore.c @@ -7,7 +7,7 @@ * Rusty Russell * This code is distributed under the terms of GNU GPL v2 * - * $Id: ip6tables-restore.c,v 1.11 2003/03/05 07:46:15 laforge Exp $ + * $Id: ip6tables-restore.c,v 1.12 2003/05/02 15:30:11 laforge Exp $ */ #include @@ -321,7 +321,11 @@ int main(int argc, char *argv[]) for (curchar = parsestart; *curchar; curchar++) { if (*curchar == '"') { - if (quote_open) { + /* quote_open cannot be true if there + * was no previous character. Thus, + * curchar-1 has to be within bounds */ + if (quote_open && + *(curchar-1) != '\\') { quote_open = 0; *curchar = ' '; } else { diff --git a/iptables-restore.c b/iptables-restore.c index c1888ce5..0a5627da 100644 --- a/iptables-restore.c +++ b/iptables-restore.c @@ -4,7 +4,7 @@ * * This code is distributed under the terms of GNU GPL v2 * - * $Id: iptables-restore.c,v 1.25 2003/03/06 11:56:31 laforge Exp $ + * $Id: iptables-restore.c,v 1.26 2003/05/02 15:30:11 laforge Exp $ */ #include @@ -318,7 +318,11 @@ int main(int argc, char *argv[]) for (curchar = parsestart; *curchar; curchar++) { if (*curchar == '"') { - if (quote_open) { + /* quote_open cannot be true if there + * was no previous character. Thus, + * curchar-1 has to be within bounds */ + if (quote_open && + *(curchar-1) != '\\') { quote_open = 0; *curchar = ' '; } else {