Hi,

Attached is the patch for fix of PR#21779.

I am not sure whether I have added that code at best/ideal place, so please review it 
and let me know if there is another place where I can put that check.

Thanks
Amit.A.




____________________________________________________________
Get advanced SPAM filtering on Webmail or POP Mail ... Get Lycos Mail!
http://login.mail.lycos.com/r/referral?aid=27005
Index: mod_dav.c
===================================================================
RCS file: /home/cvspublic/httpd-2.0/modules/dav/main/mod_dav.c,v
retrieving revision 1.101
diff -u -r1.101 mod_dav.c
--- mod_dav.c   25 Nov 2003 14:17:55 -0000      1.101
+++ mod_dav.c   1 Jan 2004 09:22:41 -0000
@@ -4563,6 +4563,20 @@
     if (strcmp(r->handler, DAV_HANDLER_NAME) != 0)
         return DECLINED;
 
+    /* At this point, we can safely assume that mod_dav is going to handle
+     * this request. So we can check existence of un-escaped # by checking
+     * URI fragment and reject requests with un-escaped # to avoid nasty results
+     */
+    if(r->parsed_uri.fragment != NULL){
+        ap_log_error(APLOG_MARK, APLOG_ERR|APLOG_NOERRNO, 0, NULL,
+                   "Faulty client : Un-escaped '#' detected in request URI");
+        ap_log_error(APLOG_MARK, APLOG_ERR|APLOG_NOERRNO, 0, NULL,
+                   "Denying the request to avoid nasty results");
+        return dav_error_response(r, HTTP_FORBIDDEN, "Faulty client : "
+                                  "Un-escaped hash character detected in"
+                                  "request URI");
+    } 
+
     /* ### do we need to do anything with r->proxyreq ?? */
 
     /*

Reply via email to