Browse Source

Fixed rare exception in GCDWebServerParseURLEncodedForm()

Pierre-Olivier Latour 11 years ago
parent
commit
a9fee8d7e2
1 changed files with 5 additions and 2 deletions
  1. 5 2
      GCDWebServer/Core/GCDWebServerFunctions.m

+ 5 - 2
GCDWebServer/Core/GCDWebServerFunctions.m

@@ -204,10 +204,13 @@ NSDictionary* GCDWebServerParseURLEncodedForm(NSString* form) {
     }
     
     key = [key stringByReplacingOccurrencesOfString:@"+" withString:@" "];
+    NSString* unescapedKey = key ? GCDWebServerUnescapeURLString(key) : nil;
     value = [value stringByReplacingOccurrencesOfString:@"+" withString:@" "];
-    if (key && value) {
-      [parameters setObject:GCDWebServerUnescapeURLString(value) forKey:GCDWebServerUnescapeURLString(key)];
+    NSString* unescapedValue = value ? GCDWebServerUnescapeURLString(value) : nil;
+    if (unescapedKey && unescapedValue) {
+      [parameters setObject:unescapedValue forKey:unescapedKey];
     } else {
+      LOG_WARNING(@"Failed parsing URL encoded form for key \"%@\" and value \"%@\"", key, value);
       DNOT_REACHED();
     }