summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCorinna Vinschen <corinna@vinschen.de>2014-10-24 19:08:55 +0000
committerCorinna Vinschen <corinna@vinschen.de>2014-10-24 19:08:55 +0000
commite91c2f80ba4bae58bbe99bbf8053f9d80c25a379 (patch)
treeb2c2599908bb802929b8a9af86aa04cf8077f388
parent36e14a881ef880ce3c48c92993d05e9614c6095d (diff)
downloadcygnal-e91c2f80ba4bae58bbe99bbf8053f9d80c25a379.tar.gz
cygnal-e91c2f80ba4bae58bbe99bbf8053f9d80c25a379.tar.bz2
cygnal-e91c2f80ba4bae58bbe99bbf8053f9d80c25a379.zip
* fhandler_proc.cc (format_proc_cygdrive): Fix symlink path if cygdrive
is "/".
-rw-r--r--winsup/cygwin/ChangeLog5
-rw-r--r--winsup/cygwin/fhandler_proc.cc3
2 files changed, 7 insertions, 1 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog
index 879cc109f..79ce16c70 100644
--- a/winsup/cygwin/ChangeLog
+++ b/winsup/cygwin/ChangeLog
@@ -1,5 +1,10 @@
2014-10-24 Corinna Vinschen <corinna@vinschen.de>
+ * fhandler_proc.cc (format_proc_cygdrive): Fix symlink path if cygdrive
+ is "/".
+
+2014-10-24 Corinna Vinschen <corinna@vinschen.de>
+
* gendef (sigdelayed): 64 bit only: Fix seh_pushreg statements in
prologue.
diff --git a/winsup/cygwin/fhandler_proc.cc b/winsup/cygwin/fhandler_proc.cc
index 1c335c429..0fd2e569c 100644
--- a/winsup/cygwin/fhandler_proc.cc
+++ b/winsup/cygwin/fhandler_proc.cc
@@ -1360,7 +1360,8 @@ format_proc_cygdrive (void *, char *&destbuf)
{
destbuf = (char *) crealloc_abort (destbuf, mount_table->cygdrive_len + 1);
char *dend = stpcpy (destbuf, mount_table->cygdrive);
- *--dend = '\0';
+ if (dend > destbuf + 1) /* cygdrive != "/"? */
+ *--dend = '\0';
return dend - destbuf;
}