From a9fee8d7e28b8be5701f51f10a3b5e5b6eacd547 Mon Sep 17 00:00:00 2001 From: Pierre-Olivier Latour Date: Tue, 7 Oct 2014 12:16:14 -0700 Subject: [PATCH] Fixed rare exception in GCDWebServerParseURLEncodedForm() --- GCDWebServer/Core/GCDWebServerFunctions.m | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/GCDWebServer/Core/GCDWebServerFunctions.m b/GCDWebServer/Core/GCDWebServerFunctions.m index 25f47ac..3e28bd5 100644 --- a/GCDWebServer/Core/GCDWebServerFunctions.m +++ b/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(); }