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: [email protected]
For additional commands, e-mail: [email protected]