]> granicus.if.org Git - apache/commitdiff
mod_session: Sessions are encoded as application/x-www-form-urlencoded strings, howev...
authorGraham Leggett <minfrin@apache.org>
Sat, 25 Feb 2012 18:10:56 +0000 (18:10 +0000)
committerGraham Leggett <minfrin@apache.org>
Sat, 25 Feb 2012 18:10:56 +0000 (18:10 +0000)
do not handle the encoding of spaces properly. Fixed.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1293658 13f79535-47bb-0310-9956-ffa450edef68

modules/session/mod_session.c

index 3e1275be178791fdf59e68514bc34ab409eaaea7..e053619a3ca4d455a39da7159e6f19e3fe591e7e 100644 (file)
@@ -303,11 +303,11 @@ static int identity_concat(char *buffer, const char *key, const char *val)
         *slider = '&';
         slider++;
     }
-    ap_escape_path_segment_buffer(slider, key);
+    ap_escape_urlencoded_buffer(slider, key);
     slider += strlen(slider);
     *slider = '=';
     slider++;
-    ap_escape_path_segment_buffer(slider, val);
+    ap_escape_urlencoded_buffer(slider, val);
     return 1;
 }
 
@@ -384,7 +384,7 @@ static apr_status_t session_identity_decode(request_rec * r, session_rec * z)
             if (!val || !*val) {
                 apr_table_unset(z->entries, key);
             }
-            else if (!ap_unescape_all(key) && !ap_unescape_all(val)) {
+            else if (!ap_unescape_urlencoded(key) && !ap_unescape_urlencoded(val)) {
                 if (!strcmp(SESSION_EXPIRY, key)) {
                     z->expiry = (apr_time_t) apr_atoi64(val);
                 }