[EMAIL PROTECTED] wrote:

>  -static int xbithack_handler(request_rec *r)
>  +static int include_fixup(request_rec *r)
>   {
>   #if defined(OS2) || defined(WIN32) || defined(NETWARE)
>       /* OS/2 dosen't currently support the xbithack. This is being worked on. */
>  @@ -3201,17 +3201,28 @@
>       conf = (include_dir_config *) ap_get_module_config(r->per_dir_config,
>                                                   &include_module);
>    
>  -    if (*conf->xbithack == xbithack_off) {
>  -        return DECLINED;
>  +    if (r->handler && (strcmp(r->handler, "server-parsed") == 0)) 
>  +    {
>  +        if (!r->content_type || !*r->content_type) {
>  +            r->content_type = "text/html";
>  +        }
>  +        r->handler = "default-handler";
>       }
>  +    else 
>  +    {
>  +        if (strcmp(r->handler, "text/html")) {
>  +            return DECLINED;
>  +        }
>  +    
>  +        if (*conf->xbithack == xbithack_off) {
>  +            return DECLINED;
>  +        }
>

I see three problems here:
* On OS/2, Win32, and Netware, you're skipping the
  check for handler=="server-parsed". Is that intentional?

* In the 'strcmp(r->handler, "text/html")' expression,
  there's no guarantee that r->handler!=NULL

* That same comparison should happen after, not before,
  the cheaper *conf->xbithack check

--Brian


Reply via email to