Author: mturk
Date: Sat Feb 24 03:45:39 2007
New Revision: 511252

URL: http://svn.apache.org/viewvc?view=rev&rev=511252
Log:
Use Microsoft strsafe library for string operations.

Modified:
    tomcat/connectors/trunk/jk/native/iis/Makefile.amd64
    tomcat/connectors/trunk/jk/native/iis/Makefile.vc
    tomcat/connectors/trunk/jk/native/iis/isapi.dsp
    tomcat/connectors/trunk/jk/native/iis/jk_isapi_plugin.c

Modified: tomcat/connectors/trunk/jk/native/iis/Makefile.amd64
URL: 
http://svn.apache.org/viewvc/tomcat/connectors/trunk/jk/native/iis/Makefile.amd64?view=diff&rev=511252&r1=511251&r2=511252
==============================================================================
--- tomcat/connectors/trunk/jk/native/iis/Makefile.amd64 (original)
+++ tomcat/connectors/trunk/jk/native/iis/Makefile.amd64 Sat Feb 24 03:45:39 
2007
@@ -59,7 +59,7 @@
 BSC32_SBRS= \
        
 LINK32=link.exe
-LINK32_FLAGS=kernel32.lib user32.lib advapi32.lib ws2_32.lib mswsock.lib 
bufferoverflowu.lib /nologo /dll /incremental:no 
/pdb:"$(OUTDIR)\isapi_redirect.pdb" /debug /machine:AMD64 /def:".\isapi.def" 
/out:"$(OUTDIR)\isapi_redirect.dll" /implib:"$(OUTDIR)\isapi_redirect.lib" 
+LINK32_FLAGS=kernel32.lib user32.lib advapi32.lib ws2_32.lib mswsock.lib 
bufferoverflowu.lib strsafe.lib /nologo /dll /incremental:no 
/pdb:"$(OUTDIR)\isapi_redirect.pdb" /debug /machine:AMD64 /def:".\isapi.def" 
/out:"$(OUTDIR)\isapi_redirect.dll" /implib:"$(OUTDIR)\isapi_redirect.lib" 
 DEF_FILE= \
        ".\isapi.def"
 LINK32_OBJS= \

Modified: tomcat/connectors/trunk/jk/native/iis/Makefile.vc
URL: 
http://svn.apache.org/viewvc/tomcat/connectors/trunk/jk/native/iis/Makefile.vc?view=diff&rev=511252&r1=511251&r2=511252
==============================================================================
--- tomcat/connectors/trunk/jk/native/iis/Makefile.vc (original)
+++ tomcat/connectors/trunk/jk/native/iis/Makefile.vc Sat Feb 24 03:45:39 2007
@@ -74,7 +74,7 @@
 BSC32_SBRS= \
        
 LINK32=link.exe
-LINK32_FLAGS=kernel32.lib user32.lib advapi32.lib ws2_32.lib mswsock.lib 
/nologo /base:"0x6A6B0000" /dll /incremental:no 
/pdb:"$(OUTDIR)\isapi_redirect.pdb" /debug /machine:I386 /def:".\isapi.def" 
/out:"$(OUTDIR)\isapi_redirect.dll" /implib:"$(OUTDIR)\isapi_redirect.lib" 
+LINK32_FLAGS=kernel32.lib user32.lib advapi32.lib ws2_32.lib mswsock.lib 
strsafe.lib /nologo /base:"0x6A6B0000" /dll /incremental:no 
/pdb:"$(OUTDIR)\isapi_redirect.pdb" /debug /machine:I386 /def:".\isapi.def" 
/out:"$(OUTDIR)\isapi_redirect.dll" /implib:"$(OUTDIR)\isapi_redirect.lib" 
 DEF_FILE= \
        ".\isapi.def"
 LINK32_OBJS= \

Modified: tomcat/connectors/trunk/jk/native/iis/isapi.dsp
URL: 
http://svn.apache.org/viewvc/tomcat/connectors/trunk/jk/native/iis/isapi.dsp?view=diff&rev=511252&r1=511251&r2=511252
==============================================================================
--- tomcat/connectors/trunk/jk/native/iis/isapi.dsp (original)
+++ tomcat/connectors/trunk/jk/native/iis/isapi.dsp Sat Feb 24 03:45:39 2007
@@ -53,7 +53,7 @@
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib 
advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib 
odbccp32.lib /nologo /dll /machine:I386
-# ADD LINK32 kernel32.lib user32.lib advapi32.lib ws2_32.lib mswsock.lib 
/nologo /base:"0x6A6B0000" /dll /debug /machine:I386 
/out:"Release\isapi_redirect.dll"
+# ADD LINK32 kernel32.lib user32.lib advapi32.lib ws2_32.lib mswsock.lib 
strsafe.lib /nologo /base:"0x6A6B0000" /dll /debug /machine:I386 
/out:"Release\isapi_redirect.dll"
 
 !ELSEIF  "$(CFG)" == "isapi - Win32 Debug"
 
@@ -79,7 +79,7 @@
 # ADD BSC32 /nologo
 LINK32=link.exe
 # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib 
advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib 
odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib advapi32.lib ws2_32.lib mswsock.lib 
/nologo /base:"0x6A6B0000" /dll /incremental:no /debug /machine:I386 
/out:"Debug\isapi_redirect.dll"
+# ADD LINK32 kernel32.lib user32.lib advapi32.lib ws2_32.lib mswsock.lib 
strsafe.lib /nologo /base:"0x6A6B0000" /dll /incremental:no /debug 
/machine:I386 /out:"Debug\isapi_redirect.dll"
 
 !ENDIF 
 

Modified: tomcat/connectors/trunk/jk/native/iis/jk_isapi_plugin.c
URL: 
http://svn.apache.org/viewvc/tomcat/connectors/trunk/jk/native/iis/jk_isapi_plugin.c?view=diff&rev=511252&r1=511251&r2=511252
==============================================================================
--- tomcat/connectors/trunk/jk/native/iis/jk_isapi_plugin.c (original)
+++ tomcat/connectors/trunk/jk/native/iis/jk_isapi_plugin.c Sat Feb 24 03:45:39 
2007
@@ -40,6 +40,8 @@
 #include "jk_uri_worker_map.h"
 #include "jk_shm.h"
 
+#include <strsafe.h>
+
 #define VERSION_STRING "Jakarta/ISAPI/" JK_VERSTRING
 #define SHM_DEF_NAME   "JKISAPISHMEM"
 #define DEFAULT_WORKER_NAME ("ajp13")
@@ -70,14 +72,14 @@
 #define HEADER_TEMPLATE      ("%s%p:")
 #define HTTP_HEADER_TEMPLATE ("HTTP_%s%p")
 
-static char URI_HEADER_NAME[_MAX_FNAME];
-static char QUERY_HEADER_NAME[_MAX_FNAME];
-static char WORKER_HEADER_NAME[_MAX_FNAME];
-static char TOMCAT_TRANSLATE_HEADER_NAME[_MAX_FNAME];
-
-static char HTTP_URI_HEADER_NAME[_MAX_FNAME];
-static char HTTP_QUERY_HEADER_NAME[_MAX_FNAME];
-static char HTTP_WORKER_HEADER_NAME[_MAX_FNAME];
+static char URI_HEADER_NAME[MAX_PATH];
+static char QUERY_HEADER_NAME[MAX_PATH];
+static char WORKER_HEADER_NAME[MAX_PATH];
+static char TOMCAT_TRANSLATE_HEADER_NAME[MAX_PATH];
+
+static char HTTP_URI_HEADER_NAME[MAX_PATH];
+static char HTTP_QUERY_HEADER_NAME[MAX_PATH];
+static char HTTP_WORKER_HEADER_NAME[MAX_PATH];
 
 #define REGISTRY_LOCATION       ("Software\\Apache Software 
Foundation\\Jakarta Isapi Redirector\\1.0")
 #define W3SVC_REGISTRY_KEY      
("SYSTEM\\CurrentControlSet\\Services\\W3SVC\\Parameters")
@@ -528,7 +530,7 @@
         return JK_FALSE;
     }
 
-    if (s && s->ws_private) {        
+    if (s && s->ws_private) {
         int rv = JK_TRUE;
         isapi_private_data_t *p = s->ws_private;
         if (!p->request_started) {
@@ -545,7 +547,7 @@
                 reason = status_reason(status);
             }
             status_str = (char *)malloc((6 + strlen(reason)));
-            sprintf(status_str, "%d %s", status, reason);
+            StringCbPrintf(status_str, 6 + strlen(reason), "%d %s", status, 
reason);
             hi.pszStatus = status_str;
             hi.cchStatus = strlen(status_str);
 
@@ -565,12 +567,12 @@
                 headers_str[0] = '\0';
 
                 for (i = 0; i < num_of_headers; i++) {
-                    strcat(headers_str, header_names[i]);
-                    strcat(headers_str, ": ");
-                    strcat(headers_str, header_values[i]);
-                    strcat(headers_str, crlf);
+                    StringCbCat(headers_str, len_of_headers, header_names[i]);
+                    StringCbCat(headers_str, len_of_headers, ": ");
+                    StringCbCat(headers_str, len_of_headers, header_values[i]);
+                    StringCbCat(headers_str, len_of_headers, crlf);
                 }
-                strcat(headers_str, crlf);
+                StringCbCat(headers_str, len_of_headers, crlf);
                 hi.pszHeader = headers_str;
                 hi.cchHeader = strlen(headers_str);
             }
@@ -578,7 +580,7 @@
                 hi.pszHeader = crlf;
                 hi.cchHeader = 2;
             }
-            hi.fKeepConn = keep_alive;            
+            hi.fKeepConn = keep_alive;
             if (!p->lpEcb->ServerSupportFunction(p->lpEcb->ConnID,
                                                  
HSE_REQ_SEND_RESPONSE_HEADER_EX,
                                                  &hi,
@@ -722,7 +724,7 @@
                         SF_NOTIFY_PREPROC_HEADERS;
     }
 
-    strcpy(pVer->lpszFilterDesc, VERSION_STRING);
+    StringCbCopy(pVer->lpszFilterDesc, SF_MAX_FILTER_DESC_LEN, VERSION_STRING);
     return rv;
 }
 
@@ -734,9 +736,9 @@
         for (i = 0; i < jk_map_size(rewrite_map); i++) {
             const char *src = jk_map_name_at(rewrite_map, i);
             if (strncmp(uri, src, strlen(src)) == 0) {
-                strcpy(buf, jk_map_value_at(rewrite_map, i));
-                strcat(buf, uri + strlen(src));
-                strcpy(uri, buf);
+                StringCbCopy(buf, INTERNET_MAX_URL_LENGTH, 
jk_map_value_at(rewrite_map, i));
+                StringCbCat(buf,  INTERNET_MAX_URL_LENGTH, uri + strlen(src));
+                StringCbCopy(uri, INTERNET_MAX_URL_LENGTH, buf);
                 return 1;
             }
         }
@@ -824,7 +826,7 @@
             query = strchr(uri, '?');
             if (query) {
                 *query++ = '\0';
-                strcpy(squery, query);
+                StringCbCopy(squery, INTERNET_MAX_URL_LENGTH, query);
             }
 
             rc = unescape_url(uri);
@@ -862,12 +864,12 @@
             }
             szPort = atoi(Port);
             if (szPort != 80 && szPort != 443 && szHost > 0) {
-                strcat(Host, ":");
-                strcat(Host, Port);
+                StringCbCat(Host, INTERNET_MAX_URL_LENGTH, ":");
+                StringCbCat(Host, INTERNET_MAX_URL_LENGTH, Port);
             }
             if (szHost > 0) {
-                strcat(snuri, Host);
-                strcat(snuri, uri);
+                StringCbCat(snuri, INTERNET_MAX_URL_LENGTH, Host);
+                StringCbCat(snuri, INTERNET_MAX_URL_LENGTH, uri);
                 if (JK_IS_DEBUG_LEVEL(logger))
                     jk_log(logger, JK_LOG_DEBUG,
                            "Virtual Host redirection of %s",
@@ -948,7 +950,7 @@
                  */
                 if (JK_IS_DEBUG_LEVEL(logger)) {
                     char duri[INTERNET_MAX_URL_LENGTH];
-                    strcpy(duri, forwardURI);
+                    StringCbCopy(duri, INTERNET_MAX_URL_LENGTH, forwardURI);
                     if (simple_rewrite(forwardURI)) {
                         jk_log(logger, JK_LOG_DEBUG,
                                "rewriten URI [%s]->[%s]",
@@ -994,14 +996,14 @@
                         return SF_STATUS_REQ_ERROR;
                     }
                     memset(ld, 0, sizeof(isapi_log_data_t));
-                    strcpy(ld->uri, forwardURI);
-                    strcpy(ld->query, squery);
+                    StringCbCopy(ld->uri, INTERNET_MAX_URL_LENGTH, forwardURI);
+                    StringCbCopy(ld->query, INTERNET_MAX_URL_LENGTH, squery);
                     pfc->pFilterContext = ld;
                 } else {
                     isapi_log_data_t *ld = (isapi_log_data_t 
*)pfc->pFilterContext;
                     memset(ld, 0, sizeof(isapi_log_data_t));
-                    strcpy(ld->uri, forwardURI);
-                    strcpy(ld->query, squery);
+                    StringCbCopy(ld->uri, INTERNET_MAX_URL_LENGTH, forwardURI);
+                    StringCbCopy(ld->query, INTERNET_MAX_URL_LENGTH, squery);
                 }
             }
             else {
@@ -1038,7 +1040,7 @@
 {
     pVer->dwExtensionVersion = MAKELONG(HSE_VERSION_MINOR, HSE_VERSION_MAJOR);
 
-    strcpy(pVer->lpszExtensionDesc, VERSION_STRING);
+    StringCbCopy(pVer->lpszExtensionDesc, HSE_MAX_EXT_DLL_NAME_LEN, 
VERSION_STRING);
 
 
     if (!is_inited) {
@@ -1183,8 +1185,8 @@
     BOOL fReturn = TRUE;
     char drive[_MAX_DRIVE];
     char dir[_MAX_DIR];
-    char fname[_MAX_FNAME];
-    char file_name[_MAX_PATH];
+    char fname[MAX_PATH];
+    char file_name[MAX_PATH];
 
     UNREFERENCED_PARAMETER(lpReserved);
 
@@ -1198,14 +1200,14 @@
             fReturn = JK_FALSE;
         }
         /* Construct redirector headers to use for this redirector instance */
-        sprintf(URI_HEADER_NAME, HEADER_TEMPLATE, URI_HEADER_NAME_BASE, hInst);
-        sprintf(QUERY_HEADER_NAME, HEADER_TEMPLATE, QUERY_HEADER_NAME_BASE, 
hInst);
-        sprintf(WORKER_HEADER_NAME, HEADER_TEMPLATE, WORKER_HEADER_NAME_BASE, 
hInst);
-        sprintf(TOMCAT_TRANSLATE_HEADER_NAME, HEADER_TEMPLATE, 
TOMCAT_TRANSLATE_HEADER_NAME_BASE, hInst);
-
-        sprintf(HTTP_URI_HEADER_NAME, HTTP_HEADER_TEMPLATE, 
URI_HEADER_NAME_BASE, hInst);
-        sprintf(HTTP_QUERY_HEADER_NAME, HTTP_HEADER_TEMPLATE, 
QUERY_HEADER_NAME_BASE, hInst);
-        sprintf(HTTP_WORKER_HEADER_NAME, HTTP_HEADER_TEMPLATE, 
WORKER_HEADER_NAME_BASE, hInst);
+        StringCbPrintf(URI_HEADER_NAME, MAX_PATH, HEADER_TEMPLATE, 
URI_HEADER_NAME_BASE, hInst);
+        StringCbPrintf(QUERY_HEADER_NAME, MAX_PATH, HEADER_TEMPLATE, 
QUERY_HEADER_NAME_BASE, hInst);
+        StringCbPrintf(WORKER_HEADER_NAME, MAX_PATH, HEADER_TEMPLATE, 
WORKER_HEADER_NAME_BASE, hInst);
+        StringCbPrintf(TOMCAT_TRANSLATE_HEADER_NAME, MAX_PATH, 
HEADER_TEMPLATE, TOMCAT_TRANSLATE_HEADER_NAME_BASE, hInst);
+
+        StringCbPrintf(HTTP_URI_HEADER_NAME, MAX_PATH, HTTP_HEADER_TEMPLATE, 
URI_HEADER_NAME_BASE, hInst);
+        StringCbPrintf(HTTP_QUERY_HEADER_NAME, MAX_PATH, HTTP_HEADER_TEMPLATE, 
QUERY_HEADER_NAME_BASE, hInst);
+        StringCbPrintf(HTTP_WORKER_HEADER_NAME, MAX_PATH, 
HTTP_HEADER_TEMPLATE, WORKER_HEADER_NAME_BASE, hInst);
 
     break;
     case DLL_PROCESS_DETACH:
@@ -1225,17 +1227,17 @@
 
 static int init_jk(char *serverName)
 {
-    char shm_name[MAX_SERVERNAME + sizeof(SHM_DEF_NAME) + 1];
+    char shm_name[MAX_PATH];
     int rc = JK_FALSE;
 
     if (!jk_open_file_logger(&logger, log_file, log_level)) {
         logger = NULL;
     }
-    strcpy(shm_name, SHM_DEF_NAME);
+    StringCbCopy(shm_name, MAX_PATH, SHM_DEF_NAME);
     if (*serverName) {
         size_t i;
-        strcat(shm_name, "_");
-        strcpy(shm_name, serverName);
+        StringCbCat(shm_name, MAX_PATH, "_");
+        StringCbCat(shm_name, MAX_PATH, serverName);
         for(i = 0; i < strlen(shm_name); i++) {
             shm_name[i] = toupper(shm_name[i]);
             if (!isalnum(shm_name[i]))
@@ -1413,7 +1415,7 @@
     if (using_ini_file) {
         tmp = jk_map_get_string((jk_map_t*)src, tag, NULL);
         if (tmp && (strlen(tmp) < sz)) {
-            strcpy(val, tmp);
+            StringCbCopy(val, sz, tmp);
             return JK_TRUE;
         }
         else {



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to