diff options
author | Christopher Faylor <me@cgf.cx> | 2000-04-08 04:47:15 +0000 |
---|---|---|
committer | Christopher Faylor <me@cgf.cx> | 2000-04-08 04:47:15 +0000 |
commit | af3e5ed27959f94ca8040ffa5574d1bf88549080 (patch) | |
tree | 6081641930f77d022536dd4a4b836121f0314f3b /winsup/cygwin | |
parent | 0cda2f4609291ee1394935aca76eb740a67a5473 (diff) | |
download | newlib-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/ChangeLog | 5 | ||||
-rw-r--r-- | winsup/cygwin/fhandler.cc | 5 |
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". |