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]

Reply via email to