New function to load windows system libraries

This function uses GetSystemDirectory() to make sure we load the version
of the library from c:\windows\system32 (or local equivalent) rather than
whatever version lives in the cwd.
This commit is contained in:
Nick Mathewson
2010-09-21 13:07:11 -04:00
parent fb34c66e83
commit 418e6caeeb
3 changed files with 35 additions and 0 deletions
+15
View File
@@ -26,6 +26,7 @@
#include <io.h>
#include <direct.h>
#include <process.h>
#include <tchar.h>
#else
#include <dirent.h>
#include <pwd.h>
@@ -2793,3 +2794,17 @@ write_pidfile(char *filename)
}
}
#ifdef MS_WINDOWS
HANDLE
load_windows_system_library(const TCHAR *library_name)
{
TCHAR path[MAX_PATH];
unsigned n;
n = GetSystemDirectory(path, 1024);
if (n == 0 || n + _tcslen(library_name) + 2 >= MAX_PATH)
return 0;
_tcscat(path, TEXT("\\"));
_tcscat(path, library_name);
return LoadLibrary(path);
}
#endif
+4
View File
@@ -340,6 +340,10 @@ void start_daemon(void);
void finish_daemon(const char *desired_cwd);
void write_pidfile(char *filename);
#ifdef MS_WINDOWS
HANDLE load_windows_system_library(const TCHAR *library_name);
#endif
const char *libor_get_digests(void);
#endif