From: corinna Date: Fri, 19 Oct 2007 12:22:48 +0000 (+0000) Subject: * fhandler_disk_file.cc (__DIR_mounts::eval_ino): Make fname big enough X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=3e813468c9b59e757d0224c98e8d9653ad3ebd36;p=pf3gnuchains%2Fpf3gnuchains3x.git * fhandler_disk_file.cc (__DIR_mounts::eval_ino): Make fname big enough to allow multibyte chars. --- diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index ba8c902a1a..a6a26e72ce 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,3 +1,8 @@ +2007-10-19 Corinna Vinschen + + * fhandler_disk_file.cc (__DIR_mounts::eval_ino): Make fname big enough + to allow multibyte chars. + 2007-10-18 Corinna Vinschen * fhandler.cc (fhandler_base::open): Open native symlinks with diff --git a/winsup/cygwin/fhandler_disk_file.cc b/winsup/cygwin/fhandler_disk_file.cc index 051ad77aaf..3ce09f093e 100644 --- a/winsup/cygwin/fhandler_disk_file.cc +++ b/winsup/cygwin/fhandler_disk_file.cc @@ -49,13 +49,13 @@ class __DIR_mounts __ino64_t eval_ino (int idx) { __ino64_t ino = 0; - char fname[parent_dir_len + mounts[idx].Length / sizeof (WCHAR) + 2]; + char fname[parent_dir_len + mounts[idx].Length + 2]; struct __stat64 st; char *c = stpcpy (fname, parent_dir); if (c[- 1] != '/') *c++ = '/'; - sys_wcstombs (c, mounts[idx].Length / sizeof (WCHAR) + 1, + sys_wcstombs (c, mounts[idx].Length + 1, mounts[idx].Buffer, mounts[idx].Length / sizeof (WCHAR)); path_conv pc (fname, PC_SYM_NOFOLLOW | PC_POSIX); if (!stat_worker (pc, &st))