Author: mturk
Date: Thu May  6 16:18:24 2010
New Revision: 941791

URL: http://svn.apache.org/viewvc?rev=941791&view=rev
Log:
Guard against empty or nil classpath

Modified:
    commons/proper/daemon/trunk/src/native/nt/procrun/src/javajni.c

Modified: commons/proper/daemon/trunk/src/native/nt/procrun/src/javajni.c
URL: 
http://svn.apache.org/viewvc/commons/proper/daemon/trunk/src/native/nt/procrun/src/javajni.c?rev=941791&r1=941790&r2=941791&view=diff
==============================================================================
--- commons/proper/daemon/trunk/src/native/nt/procrun/src/javajni.c (original)
+++ commons/proper/daemon/trunk/src/native/nt/procrun/src/javajni.c Thu May  6 
16:18:24 2010
@@ -380,7 +380,7 @@ apxJavaInitialize(APXHANDLE hJava, LPCST
     LPAPXJAVAVM     lpJava;
     JavaVMInitArgs  vmArgs;
     JavaVMOption    *lpJvmOptions;
-    DWORD           i, nOptions, sOptions = 1;
+    DWORD           i, nOptions, sOptions = 0;
     BOOL            rv = FALSE;
     if (hJava->dwType != APXHANDLE_TYPE_JVM)
         return FALSE;
@@ -419,13 +419,17 @@ apxJavaInitialize(APXHANDLE hJava, LPCST
             ++sOptions;
         if (bJniVfprintf)
             ++sOptions;
+        if (szClassPath && *szClassPath)
+            ++sOptions;
         nOptions = __apxMultiSzToJvmOptions(hJava->hPool, lpOptions,
                                             &lpJvmOptions, sOptions);
-        szCp = apxPoolAlloc(hJava->hPool, sizeof(JAVA_CLASSPATH) + 
lstrlenA(szClassPath));
-        lstrcpyA(szCp, JAVA_CLASSPATH);
-        lstrcatA(szCp, szClassPath);
-        lpJvmOptions[nOptions - sOptions].optionString = szCp;
-        --sOptions;
+        if (szClassPath && *szClassPath) {
+            szCp = apxPoolAlloc(hJava->hPool, sizeof(JAVA_CLASSPATH) + 
lstrlenA(szClassPath));
+            lstrcpyA(szCp, JAVA_CLASSPATH);
+            lstrcatA(szCp, szClassPath);
+            lpJvmOptions[nOptions - sOptions].optionString = szCp;
+            --sOptions;
+        }
         if (bJniVfprintf) {
             /* default JNI error printer */
             lpJvmOptions[nOptions - sOptions].optionString = "vfprintf";


Reply via email to