Author: mturk Date: Sat Feb 27 08:42:34 2010 New Revision: 916928 URL: http://svn.apache.org/viewvc?rev=916928&view=rev Log: Fix BZ48826. We did not set Content-Lenght header name, only value which causes core caused by unset pointer
Modified: tomcat/jk/trunk/native/iis/jk_isapi_plugin.c tomcat/jk/trunk/xdocs/miscellaneous/changelog.xml 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=916928&r1=916927&r2=916928&view=diff ============================================================================== --- tomcat/jk/trunk/native/iis/jk_isapi_plugin.c (original) +++ tomcat/jk/trunk/native/iis/jk_isapi_plugin.c Sat Feb 27 08:42:34 2010 @@ -2974,9 +2974,10 @@ need_content_length_header = TRUE; } - cnt -= 2; /* For our two special headers: + cnt -= 3; /* For our three special headers: * HTTP_TOMCATURI_XXXXXXXX * HTTP_TOMCATWORKER_XXXXXXXX + * HTTP_TOMCATWORKERIDX_XXXXXXXX */ /* allocate an extra header slot in case we need to add a content-length header */ s->headers_names = @@ -2997,14 +2998,14 @@ tmp += HTTP_HEADER_PREFIX_LEN; #endif - if (!strnicmp(tmp, URI_HEADER_NAME, sizeof(URI_HEADER_NAME) - 1) - || !strnicmp(tmp, WORKER_HEADER_NAME, - sizeof(WORKER_HEADER_NAME) - 1)) { + if (!strnicmp(tmp, URI_HEADER_NAME, strlen(URI_HEADER_NAME)) + || !strnicmp(tmp, WORKER_HEADER_NAME, strlen(WORKER_HEADER_NAME)) + || !strnicmp(tmp, WORKER_HEADER_INDEX, strlen(WORKER_HEADER_INDEX))) { /* Skip redirector headers */ real_header = JK_FALSE; } else if (!strnicmp(tmp, QUERY_HEADER_NAME, - sizeof(QUERY_HEADER_NAME) - 1)) { + strlen(QUERY_HEADER_NAME))) { /* HTTP_TOMCATQUERY_XXXXXXXX was supplied, * remove it from the count and skip */ @@ -3021,17 +3022,17 @@ if (unknown_content_length || s->is_chunked) { if (JK_IS_DEBUG_LEVEL(logger)) { jk_log(logger, JK_LOG_DEBUG, - "Header %s is %s", tmp, + "Header Content-Length is %s", s->is_chunked ? "chunked" : "unknown"); } - } - else { - s->headers_names[i] = tmp; + real_header = JK_FALSE; } } + if (real_header) + s->headers_names[i] = tmp; } else if (!strnicmp(tmp, TOMCAT_TRANSLATE_HEADER_NAME, - sizeof(TOMCAT_TRANSLATE_HEADER_NAME) - 1)) { + strlen(TOMCAT_TRANSLATE_HEADER_NAME))) { s->headers_names[i] = TRANSLATE_HEADER_NAME_LC; } else { @@ -3040,11 +3041,13 @@ while (':' != *tmp && *tmp) { #ifndef USE_RAW_HEADERS - if ('_' == *tmp) { - *tmp = '-'; - } - else { - *tmp = JK_TOLOWER(*tmp); + if (real_header) { + if ('_' == *tmp) { + *tmp = '-'; + } + else { + *tmp = JK_TOLOWER(*tmp); + } } #endif tmp++; @@ -3061,7 +3064,7 @@ s->headers_values[i] = tmp; } - while (*tmp != '\n' && *tmp != '\r') { + while (*tmp && *tmp != '\n' && *tmp != '\r') { tmp++; } *tmp = '\0'; Modified: tomcat/jk/trunk/xdocs/miscellaneous/changelog.xml URL: http://svn.apache.org/viewvc/tomcat/jk/trunk/xdocs/miscellaneous/changelog.xml?rev=916928&r1=916927&r2=916928&view=diff ============================================================================== --- tomcat/jk/trunk/xdocs/miscellaneous/changelog.xml (original) +++ tomcat/jk/trunk/xdocs/miscellaneous/changelog.xml Sat Feb 27 08:42:34 2010 @@ -39,6 +39,16 @@ new documentation project for JK was started. </p> </section> +<section name="Changes between 1.2.29 and 1.2.30"> + <br /> + <subsection name="Native"> + <changelog> + <fix> + <bug>48826</bug>: IIS: Fix core on POST. (mturk) + </fix> + </changelog> + </subsection> +</section> <section name="Changes between 1.2.28 and 1.2.29"> <br /> <subsection name="Native"> --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org