From 7bd52aed76828f6c375f7d621239ebb122ab87e2 Mon Sep 17 00:00:00 2001 From: basil00 Date: Fri, 15 Aug 2014 18:15:25 +0800 Subject: [PATCH] - Use GetModuleFileName instead of GetCurrentDirectory as discussed in issue #24. --- dll/windivert.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/dll/windivert.c b/dll/windivert.c index d42e489..07d5c02 100644 --- a/dll/windivert.c +++ b/dll/windivert.c @@ -220,16 +220,22 @@ static void WinDivertFilterDump(windivert_ioctl_filter_t filter, UINT16 len); */ static DWORD windivert_tls_idx; +/* + * Current DLL hmodule. + */ +static HMODULE module = NULL; + /* * Dll Entry */ -extern BOOL APIENTRY WinDivertDllEntry(HANDLE module, DWORD reason, +extern BOOL APIENTRY WinDivertDllEntry(HANDLE module0, DWORD reason, LPVOID reserved) { HANDLE event; switch (reason) { case DLL_PROCESS_ATTACH: + module = module0; if ((windivert_tls_idx = TlsAlloc()) == TLS_OUT_OF_INDEXES) { return FALSE; @@ -309,8 +315,8 @@ static BOOLEAN WinDivertGetDriverFileName(LPWSTR sys_str) return FALSE; } } - - dir_len = (size_t)GetCurrentDirectory(MAX_PATH, sys_str); + + dir_len = (size_t)GetModuleFileName(module, sys_str, MAX_PATH); if (dir_len == 0) { return FALSE;