Author: mturk
Date: Sun Mar 18 13:50:33 2012
New Revision: 1302126

URL: http://svn.apache.org/viewvc?rev=1302126&view=rev
Log:
Create valid shared memory name

Modified:
    tomcat/jk/trunk/native/common/jk_shm.c
    tomcat/jk/trunk/native/iis/jk_isapi_plugin.c

Modified: tomcat/jk/trunk/native/common/jk_shm.c
URL: 
http://svn.apache.org/viewvc/tomcat/jk/trunk/native/common/jk_shm.c?rev=1302126&r1=1302125&r2=1302126&view=diff
==============================================================================
--- tomcat/jk/trunk/native/common/jk_shm.c (original)
+++ tomcat/jk/trunk/native/common/jk_shm.c Sun Mar 18 13:50:33 2012
@@ -153,6 +153,7 @@ int jk_shm_open(const char *fname, size_
     int rc = -1;
     int attached = 0;
     char lkname[MAX_PATH];
+    char shname[MAX_PATH] = "";
 
     JK_TRACE_ENTER(l);
     if (!jk_shm_inited_cs) {
@@ -172,8 +173,17 @@ int jk_shm_open(const char *fname, size_
     jk_shm_map   = NULL;
     jk_shm_hlock = NULL;
     if (fname) {
+        int i;
         SIZE_T shmsz = 0;
-        sprintf(lkname, "Global\\%s_MUTEX", fname);
+        snprintf(shname, MAX_PATH - 8, "Global\\%s", fname);
+        for(i = 7; i < (int)strlen(shname); i++) {
+            if (!isalnum((unsigned char)shname[i]))
+                shname[i] = '_';
+            else
+                shname[i] = toupper(shname[i]);
+        }
+        strcpy(lkname, shame);
+        strcat(lkname, "_MUTEX");
         jk_shm_hlock = CreateMutex(jk_get_sa_with_null_dacl(), TRUE, lkname);
         if (jk_shm_hlock == NULL) {
             if (GetLastError() == ERROR_ALREADY_EXISTS) {
@@ -199,11 +209,11 @@ int jk_shm_open(const char *fname, size_
                 JK_TRACE_EXIT(l);
                 return rc;
             }
-            jk_shm_map = OpenFileMapping(FILE_MAP_READ | FILE_MAP_WRITE, 
FALSE, fname);
+            jk_shm_map = OpenFileMapping(FILE_MAP_READ | FILE_MAP_WRITE, 
FALSE, shname);
             if (jk_shm_map == NULL) {
                 rc = GetLastError();
                 jk_log(l, JK_LOG_ERROR, "Failed to open shared memory %s with 
errno=%d",
-                       fname, rc);
+                       shname, rc);
             }
         }
         if (jk_shm_map == NULL) {
@@ -213,7 +223,7 @@ int jk_shm_open(const char *fname, size_
                                            PAGE_READWRITE,
                                            0,
                                            (DWORD)shmsz,
-                                           fname);
+                                           shname);
         }
         if (jk_shm_map == NULL || jk_shm_map == INVALID_HANDLE_VALUE) {
             rc = GetLastError();
@@ -252,8 +262,8 @@ int jk_shm_open(const char *fname, size_
         return rc;
     }
     if (!jk_shmem.filename) {
-        if (fname)
-            jk_shmem.filename = strdup(fname);
+        if (shname[0])
+            jk_shmem.filename = strdup(shname);
         else
             jk_shmem.filename = strdup("memory");
     }

Modified: tomcat/jk/trunk/native/iis/jk_isapi_plugin.c
URL: 
http://svn.apache.org/viewvc/tomcat/jk/trunk/native/iis/jk_isapi_plugin.c?rev=1302126&r1=1302125&r2=1302126&view=diff
==============================================================================
--- tomcat/jk/trunk/native/iis/jk_isapi_plugin.c (original)
+++ tomcat/jk/trunk/native/iis/jk_isapi_plugin.c Sun Mar 18 13:50:33 2012
@@ -55,7 +55,7 @@
 
 #define VERSION_STRING "Jakarta/ISAPI/" JK_EXPOSED_VERSION
 #define FULL_VERSION_STRING "Jakarta/ISAPI/" JK_FULL_EXPOSED_VERSION
-#define SHM_DEF_PREFIX      "Global\\JK_"
+#define SHM_DEF_PREFIX      "JK_"
 #define DEFAULT_WORKER_NAME "ajp13"
 
 /*



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to