File: 100.mod_encoding-20020611a-safequery.patch

package info (click to toggle)
libapache2-mod-encoding 20040616-5
  • links: PTS
  • area: main
  • in suites: lenny, squeeze
  • size: 72 kB
  • ctags: 32
  • sloc: ansic: 285; makefile: 63
file content (31 lines) | stat: -rw-r--r-- 1,270 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
This was downloaded from http://www.namazu.org/ml/namazu-win32-users-ja/msg01596.html
And modified for apache2 by Tatsuki Sugiura <sugi@nemui.org>
diff -urN mod_encoding-20020611a-orig/mod_encoding.c mod_encoding-20020611a/mod_encoding.c
--- mod_encoding-20020611a-orig/mod_encoding.c	Tue Jun 11 18:07:14 2002
+++ mod_encoding-20020611a/mod_encoding.c	Fri Dec 13 11:43:46 2002
@@ -129,13 +129,21 @@
   char *buff;
   char *keys[] = { "Destination", NULL };
   int   i;
+  char *unparsed_uri;
+  char *query_string;
 
   /* Normalize encoding in HTTP request line */
-  ap_unescape_url(r->unparsed_uri);
-  if ((buff = iconv_string(r, cd, r->unparsed_uri,
-			   strlen(r->unparsed_uri))) == NULL)
+  query_string = apr_pstrdup(r->pool, r->unparsed_uri);
+  unparsed_uri = ap_getword(r->pool, &query_string, '?');
+  ap_unescape_url(unparsed_uri);
+  if ((buff = iconv_string(r, cd, unparsed_uri,
+			   strlen(unparsed_uri))) == NULL)
     return -1;
-  ap_parse_uri(r, buff);
+  if (query_string && strlen(query_string) > 0) {
+    ap_parse_uri(r, apr_pstrcat(r->pool, buff, "?", query_string, NULL));
+  } else {
+    ap_parse_uri(r, buff);
+  }
   ap_getparents(r->uri); /* normalize given path for security */
 
   /* Normalize encoding in HTTP request header(s) */