changeset 4302:fe27fe44ac51

7016985: (launcher) implement safe secure dll loading Reviewed-by: mchung
author ksrini
date Thu, 03 Mar 2011 14:16:57 -0800
parents d489f00d6c65
children 0efa64f13302 afcc1530e68b
files src/windows/bin/java_md.c
diffstat 1 files changed, 12 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- 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