Преглед на файлове

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
 - (void)setValue:(NSString *)value
 forHTTPHeaderField:(NSString *)field
 forHTTPHeaderField:(NSString *)field
 {
 {
-    dispatch_barrier_async(self.requestHeaderModificationQueue, ^{
+    dispatch_barrier_sync(self.requestHeaderModificationQueue, ^{
         [self.mutableHTTPRequestHeaders setValue:value forKey:field];
         [self.mutableHTTPRequestHeaders setValue:value forKey:field];
     });
     });
 }
 }
@@ -335,7 +335,7 @@ forHTTPHeaderField:(NSString *)field
 }
 }
 
 
 - (void)clearAuthorizationHeader {
 - (void)clearAuthorizationHeader {
-    dispatch_barrier_async(self.requestHeaderModificationQueue, ^{
+    dispatch_barrier_sync(self.requestHeaderModificationQueue, ^{
         [self.mutableHTTPRequestHeaders removeObjectForKey:@"Authorization"];
         [self.mutableHTTPRequestHeaders removeObjectForKey:@"Authorization"];
     });
     });
 }
 }