瀏覽代碼

Use dispatch_barrier_sync (#4474)

This should hopefully avoid any problems where we attempt to write an
HTTP header to a deallocated header dictionary.

See https://github.com/AFNetworking/AFNetworking/pull/3891
See https://github.com/AFNetworking/AFNetworking/issues/3636
Modified from https://github.com/tmm1/AFNetworking/commit/32760e7a3a1cca2817ec498708182ec99584651a

Fixes #1391
Chris Streeter 5 年之前
父節點
當前提交
eb9ce0e23d
共有 1 個文件被更改,包括 2 次插入2 次删除
  1. 2 2
      AFNetworking/AFURLRequestSerialization.m

+ 2 - 2
AFNetworking/AFURLRequestSerialization.m

@@ -313,7 +313,7 @@ static void *AFHTTPRequestSerializerObserverContext = &AFHTTPRequestSerializerOb
 - (void)setValue:(NSString *)value
 forHTTPHeaderField:(NSString *)field
 {
-    dispatch_barrier_async(self.requestHeaderModificationQueue, ^{
+    dispatch_barrier_sync(self.requestHeaderModificationQueue, ^{
         [self.mutableHTTPRequestHeaders setValue:value forKey:field];
     });
 }
@@ -335,7 +335,7 @@ forHTTPHeaderField:(NSString *)field
 }
 
 - (void)clearAuthorizationHeader {
-    dispatch_barrier_async(self.requestHeaderModificationQueue, ^{
+    dispatch_barrier_sync(self.requestHeaderModificationQueue, ^{
         [self.mutableHTTPRequestHeaders removeObjectForKey:@"Authorization"];
     });
 }