svn commit: r1302126 - in /tomcat/jk/trunk/native: common/jk_shm.c iis/jk_isapi_plugin.c

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

URL: http://svn.apache.org/viewvc?rev=1302126view=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=1302126r1=1302125r2=1302126view=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=1302126r1=1302125r2=1302126view=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



Re: svn commit: r1302126 - in /tomcat/jk/trunk/native: common/jk_shm.c iis/jk_isapi_plugin.c

2012-03-18 Thread Konstantin Kolinko
2012/3/18  mt...@apache.org:
 Author: mturk
 Date: Sun Mar 18 13:50:33 2012
 New Revision: 1302126

 URL: http://svn.apache.org/viewvc?rev=1302126view=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=1302126r1=1302125r2=1302126view=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);

There is strcat(lkname, _MUTEX) below, appending 6 more chars to the name,
so
  s/ MAX_PATH - 8 / MAX_PATH - 14 /

though it is unlikely that anyone would hit MAX_PATH here.


 +        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_

Best regards,
Konstantin Kolinko

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