Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCorinna Vinschen <corinna@vinschen.de>2010-08-28 15:22:37 +0400
committerCorinna Vinschen <corinna@vinschen.de>2010-08-28 15:22:37 +0400
commit71d8f118da24bb5a31f406e5fba222a324913b05 (patch)
tree093f51ed610d7333e4a933f68a1ee8900f5438bb /winsup/utils/cygpath.cc
parent893a8b78fca52a5474fbca9a0b881b622afc5044 (diff)
* loadlib.h: New header implementing safe LoadLibrary calls.
Include throughout files using LoadLibrary function. * cygcheck.cc (dump_sysinfo): Retrieve kernel32.dll handle via GetModuleHandle, rather than using LoadLibrary. * cygpath.cc (get_long_name): Ditto. (do_sysfolders): Append .dll suffix in LoadLibrary call. * ldh.cc (WinMain): Use LoadLibraryExW with DONT_RESOLVE_DLL_REFERENCES to avoid loading malicious library code. * locale.cc (print_locale_with_codeset): Change way to retrieve kernel32.dll path.
Diffstat (limited to 'winsup/utils/cygpath.cc')
-rw-r--r--winsup/utils/cygpath.cc5
1 files changed, 3 insertions, 2 deletions
diff --git a/winsup/utils/cygpath.cc b/winsup/utils/cygpath.cc
index 449c5436e..63606a9df 100644
--- a/winsup/utils/cygpath.cc
+++ b/winsup/utils/cygpath.cc
@@ -28,6 +28,7 @@ details. */
#include <ddk/winddk.h>
#include <ddk/ntifs.h>
#include "wide_path.h"
+#include "loadlib.h"
static const char version[] = "$Revision$";
@@ -452,7 +453,7 @@ get_long_name (const char *filename, DWORD& len)
{
char *sbuf;
wchar_t buf[32768];
- static HINSTANCE k32 = LoadLibrary ("kernel32.dll");
+ static HINSTANCE k32 = GetModuleHandleW (L"kernel32.dll");
static DWORD (WINAPI *GetLongPathName) (LPCWSTR, LPWSTR, DWORD) =
(DWORD (WINAPI *) (LPCWSTR, LPWSTR, DWORD)) GetProcAddress (k32, "GetLongPathNameW");
if (!GetLongPathName)
@@ -610,7 +611,7 @@ do_sysfolders (char option)
break;
case 'H':
- k32 = LoadLibrary ("userenv");
+ k32 = LoadLibrary ("userenv.dll");
if (k32)
GetProfilesDirectoryAPtrW = (BOOL (*) (LPWSTR, LPDWORD))
GetProcAddress (k32, "GetProfilesDirectoryW");