From af3e5ed27959f94ca8040ffa5574d1bf88549080 Mon Sep 17 00:00:00 2001 From: Christopher Faylor Date: Sat, 8 Apr 2000 04:47:15 +0000 Subject: [PATCH] * fhandler.cc (fhandler_disk_file::fstat): Allocate enough space for root dir determination or overflow an array. --- winsup/cygwin/ChangeLog | 5 +++++ winsup/cygwin/fhandler.cc | 5 +++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index 41454f18a..92e8ab8be 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,3 +1,8 @@ +Sat Apr 8 00:46:14 2000 Christopher Faylor + + * 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 * 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 d33b60c8c..1003815fb 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".