From 4018776f6e72a2e612eab9e4fc975ad293d70bc5 Mon Sep 17 00:00:00 2001 From: Christopher Faylor Date: Wed, 10 Sep 2003 16:22:49 +0000 Subject: [PATCH] * Makefile.in: Add some more -fomit-frame-pointer files. * path.cc (conv_path_list_buf_size): Free normalized_path or suffer memory leak. * syscalls.cc (chroot): Ditto. --- winsup/cygwin/ChangeLog | 10 +++++++++- winsup/cygwin/Makefile.in | 4 ++++ winsup/cygwin/path.cc | 4 ++++ winsup/cygwin/syscalls.cc | 2 ++ 4 files changed, 19 insertions(+), 1 deletion(-) diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index 6212ac9b9..1bfe052c5 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,3 +1,11 @@ +2003-09-10 Christopher Faylor + + * Makefile.in: Add some more -fomit-frame-pointer files. + + * path.cc (conv_path_list_buf_size): Free normalized_path or suffer + memory leak. + * syscalls.cc (chroot): Ditto. + 2003-09-10 Corinna Vinschen * Makefile.in (DLL_OFILES): Add bsdlib.o. @@ -48,7 +56,7 @@ * mmap.cc (mmap64): Change address types from caddr_t to void * according to SUSv3. - (mmap): Ditto. + (mmap): Ditto. (munmap): Ditto. (msync): Ditto. (mprotect): Ditto. Move to before the fhandler methods. diff --git a/winsup/cygwin/Makefile.in b/winsup/cygwin/Makefile.in index 13227a508..5045b1f51 100644 --- a/winsup/cygwin/Makefile.in +++ b/winsup/cygwin/Makefile.in @@ -73,6 +73,10 @@ fhandler_tty_CFLAGS:=-fomit-frame-pointer fhandler_virtual_CFLAGS:=-fomit-frame-pointer fhandler_windows_CFLAGS:=-fomit-frame-pointer fhandler_zero_CFLAGS:=-fomit-frame-pointer +regcomp_CFLAGS=-fomit-frame-pointer +regerror_CFLAGS=-fomit-frame-pointer +regexec_CFLAGS=-fomit-frame-pointer +regfree_CFLAGS=-fomit-frame-pointer CC:=@CC@ # FIXME: Which is it, CC or CC_FOR_TARGET? diff --git a/winsup/cygwin/path.cc b/winsup/cygwin/path.cc index 58114977d..6412a8a11 100644 --- a/winsup/cygwin/path.cc +++ b/winsup/cygwin/path.cc @@ -3653,6 +3653,10 @@ conv_path_list_buf_size (const char *path_list, bool to_posix) + (num_elms * max_mount_path_len) + (nrel * strlen (to_posix ? pc.normalized_path : pc.get_win32 ())) + 100; + + cfree (pc.normalized_path); // FIXME - probably should be in a destructor but + // it's hard to justify a destructor for the few + // places where this is needed return size; } diff --git a/winsup/cygwin/syscalls.cc b/winsup/cygwin/syscalls.cc index 753712126..0880c3f72 100644 --- a/winsup/cygwin/syscalls.cc +++ b/winsup/cygwin/syscalls.cc @@ -2373,6 +2373,8 @@ chroot (const char *newroot) syscall_printf ("%d = chroot (%s)", ret ? get_errno () : 0, newroot ? newroot : "NULL"); + if (path.normalized_path) + cfree (path.normalized_path); return ret; }