From 5c083f82ca31ddd12a25c826a4a81a0778461d30 Mon Sep 17 00:00:00 2001 From: reimar Date: Fri, 27 Aug 2010 16:28:53 +0000 Subject: loader: Disable loading codecs from the current directory While convenient, it is too risky. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32025 b3059339-0415-0410-9bf9-f77b7e298cf2 100l, we need to search for SetDllDirectoryA instead of SetDllDirectory git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@32026 b3059339-0415-0410-9bf9-f77b7e298cf2 --- loader/module.c | 4 ++++ mplayer.c | 6 +++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/loader/module.c b/loader/module.c index 6f3f0c3de9..6182d4b190 100644 --- a/loader/module.c +++ b/loader/module.c @@ -381,6 +381,10 @@ HMODULE WINAPI LoadLibraryExA(LPCSTR libname, HANDLE hfile, DWORD flags) // if(fs_installed==0) // install_fs(); + // Do not load libraries from a path relative to the current directory + if (*libname != '/') + i++; + while (wm == 0 && listpath[++i]) { if (i < 2) diff --git a/mplayer.c b/mplayer.c index ce88e3a8c2..0b8f980372 100644 --- a/mplayer.c +++ b/mplayer.c @@ -3210,9 +3210,13 @@ int i; { HMODULE kernel32 = GetModuleHandle("Kernel32.dll"); BOOL WINAPI (*setDEP)(DWORD) = NULL; - if (kernel32) + BOOL WINAPI (*setDllDir)(LPCTSTR) = NULL; + if (kernel32) { setDEP = GetProcAddress(kernel32, "SetProcessDEPPolicy"); + setDllDir = GetProcAddress(kernel32, "SetDllDirectoryA"); + } if (setDEP) setDEP(3); + if (setDllDir) setDllDir(""); } // stop Windows from showing all kinds of annoying error dialogs SetErrorMode(0x8003); -- cgit v1.2.3