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