summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--winsup/cygwin/ChangeLog5
-rw-r--r--winsup/cygwin/environ.cc4
2 files changed, 7 insertions, 2 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog
index 3e8dacdd4..76da1ec23 100644
--- a/winsup/cygwin/ChangeLog
+++ b/winsup/cygwin/ChangeLog
@@ -1,5 +1,10 @@
2014-02-09 Christopher Faylor <me.cygwin2014@cgf.cx>
+ * environ.cc (strbrk): Properly deal with environment variable sans
+ quote.
+
+2014-02-09 Christopher Faylor <me.cygwin2014@cgf.cx>
+
* environ.cc (strbrk): New function.
(parse_options): Use strbrk to parse CYGWIN environment variable.
diff --git a/winsup/cygwin/environ.cc b/winsup/cygwin/environ.cc
index 5ac155e37..a53b5f085 100644
--- a/winsup/cygwin/environ.cc
+++ b/winsup/cygwin/environ.cc
@@ -148,10 +148,10 @@ strbrk(char *&buf)
char *tok = buf;
char *sep = buf + strcspn(buf, " \t");
char *quotestart = strchr(buf, '"');
- if (quotestart > sep)
+ if (!quotestart || quotestart > sep)
{
+ buf = sep + !!*sep; /* Don't point beyond EOS */
quotestart = NULL;
- buf = sep + 1;
}
else
{