From 175c3fa451066622f6a3ee2fd21b55974ae4b9af Mon Sep 17 00:00:00 2001 From: Mattt Thompson Date: Wed, 31 Oct 2012 08:37:47 -0700 Subject: [PATCH] [Issue #565] Checking for kCFStringEncodingInvalidId from CFStringConvertIANACharSetNameToEncoding() before getting NSStringEncoding with CFStringConvertEncodingToNSStringEncoding, which may otherwise lead to unexpected behavior --- AFNetworking/AFURLConnectionOperation.m | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/AFNetworking/AFURLConnectionOperation.m b/AFNetworking/AFURLConnectionOperation.m index 339f145..74d0c0b 100644 --- a/AFNetworking/AFURLConnectionOperation.m +++ b/AFNetworking/AFURLConnectionOperation.m @@ -325,12 +325,15 @@ static inline BOOL AFStateTransitionIsValid(AFOperationState fromState, AFOperat - (NSString *)responseString { [self.lock lock]; if (!_responseString && self.response && self.responseData) { - NSStringEncoding textEncoding = NSUTF8StringEncoding; + NSStringEncoding stringEncoding = NSUTF8StringEncoding; if (self.response.textEncodingName) { - textEncoding = CFStringConvertEncodingToNSStringEncoding(CFStringConvertIANACharSetNameToEncoding((__bridge CFStringRef)self.response.textEncodingName)); + CFStringEncoding IANAEncoding = CFStringConvertIANACharSetNameToEncoding((__bridge CFStringRef)self.response.textEncodingName); + if (IANAEncoding != kCFStringEncodingInvalidId) { + stringEncoding = CFStringConvertEncodingToNSStringEncoding(IANAEncoding); + } } - self.responseString = [[NSString alloc] initWithData:self.responseData encoding:textEncoding]; + self.responseString = [[NSString alloc] initWithData:self.responseData encoding:stringEncoding]; } [self.lock unlock];