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]