* hookapi.cc (ld_preload): Call LoadLibraryW.

* path.h (path_conv::get_wide_win32_path_len): Define.
This commit is contained in:
Corinna Vinschen 2007-08-20 15:41:08 +00:00
parent 876da7fb74
commit 891b6e885e
3 changed files with 13 additions and 1 deletions

View File

@ -1,3 +1,8 @@
2007-08-20 Corinna Vinschen <corinna@vinschen.de>
* hookapi.cc (ld_preload): Call LoadLibraryW.
* path.h (path_conv::get_wide_win32_path_len): Define.
2007-08-20 Corinna Vinschen <corinna@vinschen.de> 2007-08-20 Corinna Vinschen <corinna@vinschen.de>
* fhandler.cc (rootdir): Delete. * fhandler.cc (rootdir): Delete.

View File

@ -219,7 +219,8 @@ ld_preload ()
for (p = strtok_r (s, ":\t\n", &here); p; p = strtok_r (NULL, ":\t\n", &here)) for (p = strtok_r (s, ":\t\n", &here); p; p = strtok_r (NULL, ":\t\n", &here))
{ {
path_conv lib (p); path_conv lib (p);
if (!LoadLibrary (lib.get_win32 ())) WCHAR libname[lib.get_wide_win32_path_len () + 1];
if (!LoadLibraryW (lib.get_wide_win32_path (libname)))
{ {
__seterrno (); __seterrno ();
api_fatal ("error while loading shared libraries: %s: " api_fatal ("error while loading shared libraries: %s: "

View File

@ -240,6 +240,12 @@ class path_conv
PUNICODE_STRING get_nt_native_path (); PUNICODE_STRING get_nt_native_path ();
POBJECT_ATTRIBUTES get_object_attr (OBJECT_ATTRIBUTES &attr, POBJECT_ATTRIBUTES get_object_attr (OBJECT_ATTRIBUTES &attr,
SECURITY_ATTRIBUTES &sa); SECURITY_ATTRIBUTES &sa);
inline size_t get_wide_win32_path_len ()
{
get_nt_native_path ();
return uni_path.Length / sizeof (WCHAR);
}
PWCHAR get_wide_win32_path (PWCHAR wc); PWCHAR get_wide_win32_path (PWCHAR wc);
operator DWORD &() {return fileattr;} operator DWORD &() {return fileattr;}
operator int () {return fileattr; } operator int () {return fileattr; }