# HG changeset patch # User ksrini # Date 1299190617 28800 # Node ID fe27fe44ac51a7ef1e4f60b7b6de74ea6c0ba98b # Parent d489f00d6c6574ed32aa703be883ac6052baeda3 7016985: (launcher) implement safe secure dll loading Reviewed-by: mchung diff -r d489f00d6c65 -r fe27fe44ac51 src/windows/bin/java_md.c --- a/src/windows/bin/java_md.c Wed Mar 02 05:35:14 2011 -0800 +++ b/src/windows/bin/java_md.c Thu Mar 03 14:16:57 2011 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -1212,11 +1212,22 @@ return findBootClass(env, classname); } +typedef BOOL (WINAPI *pfn_SetDllDirectory)(LPCTSTR); + void InitLauncher(boolean javaw) { INITCOMMONCONTROLSEX icx; + // Launcher links with kernel32 + HMODULE hKernel32 = GetModuleHandle(TEXT("kernel32.dll")); + pfn_SetDllDirectory fn = (pfn_SetDllDirectory) GetProcAddress(hKernel32, + "SetDllDirectory"); + if (fn != NULL) { + // Exclude CWD from Dll search path + fn(""); + } + /* * Required for javaw mode MessageBox output as well as for * HotSpot -XX:+ShowMessageBoxOnError in java mode, an empty