aboutsummaryrefslogtreecommitdiff
path: root/winsup/cygwin
diff options
context:
space:
mode:
authorChristopher Faylor <me@cgf.cx>2000-04-08 04:47:15 +0000
committerChristopher Faylor <me@cgf.cx>2000-04-08 04:47:15 +0000
commitaf3e5ed27959f94ca8040ffa5574d1bf88549080 (patch)
tree6081641930f77d022536dd4a4b836121f0314f3b /winsup/cygwin
parent0cda2f4609291ee1394935aca76eb740a67a5473 (diff)
downloadnewlib-af3e5ed27959f94ca8040ffa5574d1bf88549080.zip
newlib-af3e5ed27959f94ca8040ffa5574d1bf88549080.tar.gz
newlib-af3e5ed27959f94ca8040ffa5574d1bf88549080.tar.bz2
* fhandler.cc (fhandler_disk_file::fstat): Allocate enough space for root dir
determination or overflow an array.
Diffstat (limited to 'winsup/cygwin')
-rw-r--r--winsup/cygwin/ChangeLog5
-rw-r--r--winsup/cygwin/fhandler.cc5
2 files changed, 8 insertions, 2 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog
index 41454f1..92e8ab8 100644
--- a/winsup/cygwin/ChangeLog
+++ b/winsup/cygwin/ChangeLog
@@ -1,3 +1,8 @@
+Sat Apr 8 00:46:14 2000 Christopher Faylor <cgf@cygnus.com>
+
+ * fhandler.cc (fhandler_disk_file::fstat): Allocate enough space for
+ root dir determination or overflow an array.
+
Sat Apr 8 00:08:53 2000 Christopher Faylor <cgf@cygnus.com>
* exceptions.cc (sigsave): Copy on fork so that we can restore correct
diff --git a/winsup/cygwin/fhandler.cc b/winsup/cygwin/fhandler.cc
index d33b60c..1003815 100644
--- a/winsup/cygwin/fhandler.cc
+++ b/winsup/cygwin/fhandler.cc
@@ -887,8 +887,9 @@ fhandler_disk_file::fstat (struct stat *buf)
buf->st_dev = local.dwVolumeSerialNumber;
buf->st_size = local.nFileSizeLow;
- /* Allocate some place to determine the root directory. */
- char root[strlen (get_win32_name ()) + 1];
+ /* Allocate some place to determine the root directory. Need to allocate
+ enough so that rootdir can add a trailing slash if path starts with \\. */
+ char root[strlen (get_win32_name ()) + 3];
strcpy (root, get_win32_name ());
/* Assume that if a drive has ACL support it MAY have valid "inodes".