From 66e34c845b120a14d2696758b4c9a9abf4cc9b34 Mon Sep 17 00:00:00 2001 From: corinna Date: Tue, 11 Mar 2008 13:35:54 +0000 Subject: [PATCH] * dlfcn.cc (get_full_path_of_dll): Allow paths up to PATH_MAX. (dlopen): Call get_full_path_of_dll with path buffer allocate by tmp_pathbuf. --- winsup/cygwin/ChangeLog | 6 ++++++ winsup/cygwin/dlfcn.cc | 6 ++++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index 03bb5f01d0..d0be7942bc 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,5 +1,11 @@ 2008-03-11 Corinna Vinschen + * dlfcn.cc (get_full_path_of_dll): Allow paths up to PATH_MAX. + (dlopen): Call get_full_path_of_dll with path buffer allocate by + tmp_pathbuf. + +2008-03-11 Corinna Vinschen + * spawn.cc (find_exec): Use tmp_pathbuf to allocate path buffer. 2008-03-11 Corinna Vinschen diff --git a/winsup/cygwin/dlfcn.cc b/winsup/cygwin/dlfcn.cc index bcdc452ef9..f00e09abda 100644 --- a/winsup/cygwin/dlfcn.cc +++ b/winsup/cygwin/dlfcn.cc @@ -23,6 +23,7 @@ details. */ #include "dlfcn.h" #include "dll_init.h" #include "cygtls.h" +#include "tls_pbuf.h" static void __stdcall set_dl_error (const char *str) @@ -48,7 +49,7 @@ get_full_path_of_dll (const char* str, char *name) int len = strlen (str); /* empty string or too long to be legal win32 pathname? */ - if (len == 0 || len >= CYG_MAX_PATH) + if (len == 0 || len >= PATH_MAX) return str; /* Yes. Let caller deal with it. */ const char *ret; @@ -91,7 +92,8 @@ dlopen (const char *name, int) ret = (void *) GetModuleHandle (NULL); /* handle for the current module */ else { - char buf[CYG_MAX_PATH]; + tmp_pathbuf tp; + char *buf = tp.c_get (); /* handle for the named library */ const char *fullpath = get_full_path_of_dll (name, buf); if (!fullpath) -- 2.11.0