nacho 2003/02/06 15:34:45
Modified: jk/native2/server/isapi jk_isapi_plugin.c
Log:
Fix for Bug#16759 ISAPI_REDIRECTOR Handles %2F improperly
Was refusing any URL with %2F or %00 embedded always,
now it only refuses request mapped to tomcat..
Revision Changes Path
1.57 +19 -18
jakarta-tomcat-connectors/jk/native2/server/isapi/jk_isapi_plugin.c
Index: jk_isapi_plugin.c
===================================================================
RCS file:
/home/cvs/jakarta-tomcat-connectors/jk/native2/server/isapi/jk_isapi_plugin.c,v
retrieving revision 1.56
retrieving revision 1.57
diff -u -r1.56 -r1.57
--- jk_isapi_plugin.c 6 Feb 2003 16:37:47 -0000 1.56
+++ jk_isapi_plugin.c 6 Feb 2003 23:34:45 -0000 1.57
@@ -315,22 +315,6 @@
}
rc = jk_requtil_unescapeUrl(uri);
- if (rc == BAD_REQUEST) {
- env->l->jkLog(env, env->l, JK_LOG_ERROR,
- "HttpFilterProc [%s] contains one or more invalid escape
sequences.\n",
- uri);
- write_error_response(pfc,"400 Bad Request", HTML_ERROR_400);
- workerEnv->globalEnv->releaseEnv( workerEnv->globalEnv, env );
- return SF_STATUS_REQ_FINISHED;
- }
- else if(rc == BAD_PATH) {
- env->l->jkLog(env, env->l, JK_LOG_EMERG,
- "HttpFilterProc [%s] contains forbidden escape
sequences.\n",
- uri);
- write_error_response(pfc,"403 Forbidden", HTML_ERROR_403);
- workerEnv->globalEnv->releaseEnv( workerEnv->globalEnv, env );
- return SF_STATUS_REQ_FINISHED;
- }
jk_requtil_getParents(uri);
if (pfc->GetServerVariable(pfc, SERVER_NAME, (LPVOID)Host,
(LPDWORD)&szHost)){
@@ -354,6 +338,23 @@
char *forwardURI;
/* This is a servlet, should redirect ... */
+ /* First check if the request was invalidated at decode */
+ if (rc == BAD_REQUEST) {
+ env->l->jkLog(env, env->l, JK_LOG_ERROR,
+ "HttpFilterProc [%s] contains one or more invalid
escape sequences.\n",
+ uri);
+ write_error_response(pfc,"400 Bad Request", HTML_ERROR_400);
+ workerEnv->globalEnv->releaseEnv( workerEnv->globalEnv, env
);
+ return SF_STATUS_REQ_FINISHED;
+ }
+ else if(rc == BAD_PATH) {
+ env->l->jkLog(env, env->l, JK_LOG_EMERG,
+ "HttpFilterProc [%s] contains forbidden escape
sequences.\n",
+ uri);
+ write_error_response(pfc,"403 Forbidden", HTML_ERROR_403);
+ workerEnv->globalEnv->releaseEnv( workerEnv->globalEnv, env
);
+ return SF_STATUS_REQ_FINISHED;
+ }
env->l->jkLog(env, env->l, JK_LOG_DEBUG,
"HttpFilterProc [%s] is a servlet url - should redirect
to %s\n",
uri, uriEnv->workerName);
@@ -408,7 +409,7 @@
workerEnv->globalEnv->releaseEnv( workerEnv->globalEnv,
env );
return SF_STATUS_REQ_ERROR;
}
- SetHeader(pfc, "Translate:", NULL);
+ SetHeader(pfc, "Translate:", NULL);
}
} else {
env->l->jkLog(env, env->l, JK_LOG_DEBUG,
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]