GOOD GOD you can't be serious :)

strncat strncpy exist for a reason, C's been safe for decades if
only the correct functions are chosen :)

It would be a -1, but I don't count myself amongst the voters here.

[EMAIL PROTECTED] wrote:
> 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]
> 
> 
> 


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

Reply via email to