From dd8dadece1ab39fdcbabe7120de8ac7774f31f59 Mon Sep 17 00:00:00 2001 From: pi1024e Date: Wed, 31 Jul 2019 10:56:25 -0400 Subject: [PATCH 01/21] Made methods in CFSocketStream consistent in style --- CoreFoundation/Stream.subproj/CFSocketStream.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/CoreFoundation/Stream.subproj/CFSocketStream.c b/CoreFoundation/Stream.subproj/CFSocketStream.c index 0c8e02eb53..58ae6ac663 100644 --- a/CoreFoundation/Stream.subproj/CFSocketStream.c +++ b/CoreFoundation/Stream.subproj/CFSocketStream.c @@ -220,19 +220,20 @@ CF_PRIVATE CFStreamError _CFStreamErrorFromError(CFErrorRef error) { CF_PRIVATE CFErrorRef _CFErrorFromStreamError(CFAllocatorRef alloc, CFStreamError *streamError) { CFErrorRef result; Boolean canUpCall; - + __CFLock(&(CFNetworkSupport.lock)); if (!__CFBitIsSet(CFNetworkSupport.flags, kTriedToLoad)) initializeCFNetworkSupport(); canUpCall = (CFNetworkSupport._CFErrorCreateWithStreamError != NULL); __CFUnlock(&(CFNetworkSupport.lock)); + if (canUpCall) { result = CFNETWORK_CALL(_CFErrorCreateWithStreamError, (alloc, streamError)); } else { if (streamError->domain == kCFStreamErrorDomainPOSIX) { - return CFErrorCreate(alloc, kCFErrorDomainPOSIX, streamError->error, NULL); + result = CFErrorCreate(alloc, kCFErrorDomainPOSIX, streamError->error, NULL); } else if (streamError->domain == kCFStreamErrorDomainMacOSStatus) { - return CFErrorCreate(alloc, kCFErrorDomainOSStatus, streamError->error, NULL); + result = CFErrorCreate(alloc, kCFErrorDomainOSStatus, streamError->error, NULL); } else { CFStringRef key = CFSTR("CFStreamErrorDomainKey"); CFNumberRef value = CFNumberCreate(alloc, kCFNumberCFIndexType, &streamError->domain); From 41993ac2c18118cebfdb6a4f6e3f76f5fc618dc5 Mon Sep 17 00:00:00 2001 From: pi1024e Date: Wed, 31 Jul 2019 15:44:06 -0400 Subject: [PATCH 02/21] Fixed whitespace --- CoreFoundation/Stream.subproj/CFSocketStream.c | 1 - 1 file changed, 1 deletion(-) diff --git a/CoreFoundation/Stream.subproj/CFSocketStream.c b/CoreFoundation/Stream.subproj/CFSocketStream.c index 58ae6ac663..1bc688987c 100644 --- a/CoreFoundation/Stream.subproj/CFSocketStream.c +++ b/CoreFoundation/Stream.subproj/CFSocketStream.c @@ -226,7 +226,6 @@ CF_PRIVATE CFErrorRef _CFErrorFromStreamError(CFAllocatorRef alloc, CFStreamErro canUpCall = (CFNetworkSupport._CFErrorCreateWithStreamError != NULL); __CFUnlock(&(CFNetworkSupport.lock)); - if (canUpCall) { result = CFNETWORK_CALL(_CFErrorCreateWithStreamError, (alloc, streamError)); } else { From ac982558b8a6cc092a02de44676c5b32f892c112 Mon Sep 17 00:00:00 2001 From: pi1024e Date: Wed, 31 Jul 2019 15:56:36 -0400 Subject: [PATCH 03/21] Fixed --- CoreFoundation/Stream.subproj/CFSocketStream.c | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/CoreFoundation/Stream.subproj/CFSocketStream.c b/CoreFoundation/Stream.subproj/CFSocketStream.c index 1bc688987c..78069bb3b0 100644 --- a/CoreFoundation/Stream.subproj/CFSocketStream.c +++ b/CoreFoundation/Stream.subproj/CFSocketStream.c @@ -191,7 +191,6 @@ CF_EXPORT void CFStreamCreatePairWithPeerSocketSignature(CFAllocatorRef alloc, c } CF_PRIVATE CFStreamError _CFStreamErrorFromError(CFErrorRef error) { - CFStreamError result; Boolean canUpCall; __CFLock(&(CFNetworkSupport.lock)); @@ -200,8 +199,9 @@ CF_PRIVATE CFStreamError _CFStreamErrorFromError(CFErrorRef error) { __CFUnlock(&(CFNetworkSupport.lock)); if (canUpCall) { - result = CFNETWORK_CALL(_CFStreamErrorFromCFError, (error)); + return CFNETWORK_CALL(_CFStreamErrorFromCFError, (error)); } else { + CFStreamError result; CFStringRef domain = CFErrorGetDomain(error); if (CFEqual(domain, kCFErrorDomainPOSIX)) { result.domain = kCFStreamErrorDomainPOSIX; @@ -213,12 +213,11 @@ CF_PRIVATE CFStreamError _CFStreamErrorFromError(CFErrorRef error) { result.domain = kCFStreamErrorDomainCustom; } result.error = CFErrorGetCode(error); + return result; } - return result; } CF_PRIVATE CFErrorRef _CFErrorFromStreamError(CFAllocatorRef alloc, CFStreamError *streamError) { - CFErrorRef result; Boolean canUpCall; __CFLock(&(CFNetworkSupport.lock)); @@ -227,20 +226,20 @@ CF_PRIVATE CFErrorRef _CFErrorFromStreamError(CFAllocatorRef alloc, CFStreamErro __CFUnlock(&(CFNetworkSupport.lock)); if (canUpCall) { - result = CFNETWORK_CALL(_CFErrorCreateWithStreamError, (alloc, streamError)); + return CFNETWORK_CALL(_CFErrorCreateWithStreamError, (alloc, streamError)); } else { if (streamError->domain == kCFStreamErrorDomainPOSIX) { - result = CFErrorCreate(alloc, kCFErrorDomainPOSIX, streamError->error, NULL); + return CFErrorCreate(alloc, kCFErrorDomainPOSIX, streamError->error, NULL); } else if (streamError->domain == kCFStreamErrorDomainMacOSStatus) { - result = CFErrorCreate(alloc, kCFErrorDomainOSStatus, streamError->error, NULL); + return CFErrorCreate(alloc, kCFErrorDomainOSStatus, streamError->error, NULL); } else { CFStringRef key = CFSTR("CFStreamErrorDomainKey"); CFNumberRef value = CFNumberCreate(alloc, kCFNumberCFIndexType, &streamError->domain); CFDictionaryRef dict = CFDictionaryCreate(alloc, (const void **)(&key), (const void **)(&value), 1, &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks); - result = CFErrorCreate(alloc, CFSTR("BogusCFStreamErrorCompatibilityDomain"), streamError->error, dict); + CFErrorRef result = CFErrorCreate(alloc, CFSTR("BogusCFStreamErrorCompatibilityDomain"), streamError->error, dict); CFRelease(value); CFRelease(dict); + return result; } } - return result; } From 94b80c57966a4bb8ab50faa8794c646ed1e5f468 Mon Sep 17 00:00:00 2001 From: pi1024e Date: Wed, 31 Jul 2019 16:16:16 -0400 Subject: [PATCH 04/21] More refactoring --- .../Stream.subproj/CFSocketStream.c | 57 ++++++++++--------- 1 file changed, 30 insertions(+), 27 deletions(-) diff --git a/CoreFoundation/Stream.subproj/CFSocketStream.c b/CoreFoundation/Stream.subproj/CFSocketStream.c index 78069bb3b0..4dfcf88de0 100644 --- a/CoreFoundation/Stream.subproj/CFSocketStream.c +++ b/CoreFoundation/Stream.subproj/CFSocketStream.c @@ -200,21 +200,22 @@ CF_PRIVATE CFStreamError _CFStreamErrorFromError(CFErrorRef error) { if (canUpCall) { return CFNETWORK_CALL(_CFStreamErrorFromCFError, (error)); + } + + CFStreamError result; + CFStringRef domain = CFErrorGetDomain(error); + if (CFEqual(domain, kCFErrorDomainPOSIX)) { + result.domain = kCFStreamErrorDomainPOSIX; + } else if (CFEqual(domain, kCFErrorDomainOSStatus)) { + result.domain = kCFStreamErrorDomainMacOSStatus; + } else if (CFEqual(domain, kCFErrorDomainMach)) { + result.domain = 11; // kCFStreamErrorDomainMach, but that symbol is in CFNetwork } else { - CFStreamError result; - CFStringRef domain = CFErrorGetDomain(error); - if (CFEqual(domain, kCFErrorDomainPOSIX)) { - result.domain = kCFStreamErrorDomainPOSIX; - } else if (CFEqual(domain, kCFErrorDomainOSStatus)) { - result.domain = kCFStreamErrorDomainMacOSStatus; - } else if (CFEqual(domain, kCFErrorDomainMach)) { - result.domain = 11; // kCFStreamErrorDomainMach, but that symbol is in CFNetwork - } else { - result.domain = kCFStreamErrorDomainCustom; - } - result.error = CFErrorGetCode(error); - return result; + result.domain = kCFStreamErrorDomainCustom; } + result.error = CFErrorGetCode(error); + return result; + } CF_PRIVATE CFErrorRef _CFErrorFromStreamError(CFAllocatorRef alloc, CFStreamError *streamError) { @@ -227,19 +228,21 @@ CF_PRIVATE CFErrorRef _CFErrorFromStreamError(CFAllocatorRef alloc, CFStreamErro if (canUpCall) { return CFNETWORK_CALL(_CFErrorCreateWithStreamError, (alloc, streamError)); - } else { - if (streamError->domain == kCFStreamErrorDomainPOSIX) { - return CFErrorCreate(alloc, kCFErrorDomainPOSIX, streamError->error, NULL); - } else if (streamError->domain == kCFStreamErrorDomainMacOSStatus) { - return CFErrorCreate(alloc, kCFErrorDomainOSStatus, streamError->error, NULL); - } else { - CFStringRef key = CFSTR("CFStreamErrorDomainKey"); - CFNumberRef value = CFNumberCreate(alloc, kCFNumberCFIndexType, &streamError->domain); - CFDictionaryRef dict = CFDictionaryCreate(alloc, (const void **)(&key), (const void **)(&value), 1, &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks); - CFErrorRef result = CFErrorCreate(alloc, CFSTR("BogusCFStreamErrorCompatibilityDomain"), streamError->error, dict); - CFRelease(value); - CFRelease(dict); - return result; - } + } + if (streamError->domain == kCFStreamErrorDomainPOSIX) { + return CFErrorCreate(alloc, kCFErrorDomainPOSIX, streamError->error, NULL); + } + if (streamError->domain == kCFStreamErrorDomainMacOSStatus) { + return CFErrorCreate(alloc, kCFErrorDomainOSStatus, streamError->error, NULL); + } + + CFStringRef key = CFSTR("CFStreamErrorDomainKey"); + CFNumberRef value = CFNumberCreate(alloc, kCFNumberCFIndexType, &streamError->domain); + CFDictionaryRef dict = CFDictionaryCreate(alloc, (const void **)(&key), (const void **)(&value), 1, &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks); + CFErrorRef result = CFErrorCreate(alloc, CFSTR("BogusCFStreamErrorCompatibilityDomain"), streamError->error, dict); + CFRelease(value); + CFRelease(dict); + return result; + } } From 8a3ff0fe9921105dfa6424fafb275e08c3015721 Mon Sep 17 00:00:00 2001 From: pi1024e Date: Wed, 31 Jul 2019 16:16:33 -0400 Subject: [PATCH 05/21] More refactoring --- CoreFoundation/Stream.subproj/CFSocketStream.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/CoreFoundation/Stream.subproj/CFSocketStream.c b/CoreFoundation/Stream.subproj/CFSocketStream.c index 4dfcf88de0..74f8d6c70f 100644 --- a/CoreFoundation/Stream.subproj/CFSocketStream.c +++ b/CoreFoundation/Stream.subproj/CFSocketStream.c @@ -201,7 +201,7 @@ CF_PRIVATE CFStreamError _CFStreamErrorFromError(CFErrorRef error) { if (canUpCall) { return CFNETWORK_CALL(_CFStreamErrorFromCFError, (error)); } - + CFStreamError result; CFStringRef domain = CFErrorGetDomain(error); if (CFEqual(domain, kCFErrorDomainPOSIX)) { @@ -243,6 +243,5 @@ CF_PRIVATE CFErrorRef _CFErrorFromStreamError(CFAllocatorRef alloc, CFStreamErro CFRelease(value); CFRelease(dict); return result; - } } From 77c8ed2c83eedd12a38b47ce3162f68d510ec95d Mon Sep 17 00:00:00 2001 From: pi1024e <49824824+pi1024e@users.noreply.github.com> Date: Thu, 1 Aug 2019 07:43:20 -0400 Subject: [PATCH 06/21] Update CoreFoundation/Stream.subproj/CFSocketStream.c Co-Authored-By: Xiaodi Wu --- CoreFoundation/Stream.subproj/CFSocketStream.c | 1 - 1 file changed, 1 deletion(-) diff --git a/CoreFoundation/Stream.subproj/CFSocketStream.c b/CoreFoundation/Stream.subproj/CFSocketStream.c index 74f8d6c70f..f7da9ec5de 100644 --- a/CoreFoundation/Stream.subproj/CFSocketStream.c +++ b/CoreFoundation/Stream.subproj/CFSocketStream.c @@ -215,7 +215,6 @@ CF_PRIVATE CFStreamError _CFStreamErrorFromError(CFErrorRef error) { } result.error = CFErrorGetCode(error); return result; - } CF_PRIVATE CFErrorRef _CFErrorFromStreamError(CFAllocatorRef alloc, CFStreamError *streamError) { From a566398861503b1eeee031a9502c3fc929fe4d9d Mon Sep 17 00:00:00 2001 From: pi1024e Date: Thu, 1 Aug 2019 07:44:46 -0400 Subject: [PATCH 07/21] Fixed Indentation --- CoreFoundation/Stream.subproj/CFSocketStream.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/CoreFoundation/Stream.subproj/CFSocketStream.c b/CoreFoundation/Stream.subproj/CFSocketStream.c index f7da9ec5de..df31ea519a 100644 --- a/CoreFoundation/Stream.subproj/CFSocketStream.c +++ b/CoreFoundation/Stream.subproj/CFSocketStream.c @@ -209,7 +209,7 @@ CF_PRIVATE CFStreamError _CFStreamErrorFromError(CFErrorRef error) { } else if (CFEqual(domain, kCFErrorDomainOSStatus)) { result.domain = kCFStreamErrorDomainMacOSStatus; } else if (CFEqual(domain, kCFErrorDomainMach)) { - result.domain = 11; // kCFStreamErrorDomainMach, but that symbol is in CFNetwork + result.domain = 11; // kCFStreamErrorDomainMach, but that symbol is in CFNetwork } else { result.domain = kCFStreamErrorDomainCustom; } @@ -242,5 +242,4 @@ CF_PRIVATE CFErrorRef _CFErrorFromStreamError(CFAllocatorRef alloc, CFStreamErro CFRelease(value); CFRelease(dict); return result; - } } From d092bb499eb3e72b5240afb7779931dc0f2f8d1c Mon Sep 17 00:00:00 2001 From: pi1024e Date: Sat, 3 Aug 2019 11:48:27 -0400 Subject: [PATCH 08/21] Revert "Fixed Indentation" This reverts commit f84be409da14d0204834f5ef6e28b3b37def6303. --- CoreFoundation/Stream.subproj/CFSocketStream.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CoreFoundation/Stream.subproj/CFSocketStream.c b/CoreFoundation/Stream.subproj/CFSocketStream.c index df31ea519a..f7da9ec5de 100644 --- a/CoreFoundation/Stream.subproj/CFSocketStream.c +++ b/CoreFoundation/Stream.subproj/CFSocketStream.c @@ -209,7 +209,7 @@ CF_PRIVATE CFStreamError _CFStreamErrorFromError(CFErrorRef error) { } else if (CFEqual(domain, kCFErrorDomainOSStatus)) { result.domain = kCFStreamErrorDomainMacOSStatus; } else if (CFEqual(domain, kCFErrorDomainMach)) { - result.domain = 11; // kCFStreamErrorDomainMach, but that symbol is in CFNetwork + result.domain = 11; // kCFStreamErrorDomainMach, but that symbol is in CFNetwork } else { result.domain = kCFStreamErrorDomainCustom; } @@ -242,4 +242,5 @@ CF_PRIVATE CFErrorRef _CFErrorFromStreamError(CFAllocatorRef alloc, CFStreamErro CFRelease(value); CFRelease(dict); return result; + } } From a71d65c468e9bf7e9cc758a596d2dd2c2421e7f3 Mon Sep 17 00:00:00 2001 From: pi1024e Date: Sat, 3 Aug 2019 11:48:29 -0400 Subject: [PATCH 09/21] Revert "Update CoreFoundation/Stream.subproj/CFSocketStream.c" This reverts commit cc2497f316ec046904b463e57146adf7ad8fc54a. --- CoreFoundation/Stream.subproj/CFSocketStream.c | 1 + 1 file changed, 1 insertion(+) diff --git a/CoreFoundation/Stream.subproj/CFSocketStream.c b/CoreFoundation/Stream.subproj/CFSocketStream.c index f7da9ec5de..74f8d6c70f 100644 --- a/CoreFoundation/Stream.subproj/CFSocketStream.c +++ b/CoreFoundation/Stream.subproj/CFSocketStream.c @@ -215,6 +215,7 @@ CF_PRIVATE CFStreamError _CFStreamErrorFromError(CFErrorRef error) { } result.error = CFErrorGetCode(error); return result; + } CF_PRIVATE CFErrorRef _CFErrorFromStreamError(CFAllocatorRef alloc, CFStreamError *streamError) { From 6b96bc6bdfa6ebcdb74f4268886496975186cddd Mon Sep 17 00:00:00 2001 From: pi1024e Date: Sat, 3 Aug 2019 11:48:34 -0400 Subject: [PATCH 10/21] Revert "More refactoring" This reverts commit 47a8291ec355fce1cbcf710f93e92ed8b759f114. --- CoreFoundation/Stream.subproj/CFSocketStream.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CoreFoundation/Stream.subproj/CFSocketStream.c b/CoreFoundation/Stream.subproj/CFSocketStream.c index 74f8d6c70f..4dfcf88de0 100644 --- a/CoreFoundation/Stream.subproj/CFSocketStream.c +++ b/CoreFoundation/Stream.subproj/CFSocketStream.c @@ -201,7 +201,7 @@ CF_PRIVATE CFStreamError _CFStreamErrorFromError(CFErrorRef error) { if (canUpCall) { return CFNETWORK_CALL(_CFStreamErrorFromCFError, (error)); } - + CFStreamError result; CFStringRef domain = CFErrorGetDomain(error); if (CFEqual(domain, kCFErrorDomainPOSIX)) { @@ -243,5 +243,6 @@ CF_PRIVATE CFErrorRef _CFErrorFromStreamError(CFAllocatorRef alloc, CFStreamErro CFRelease(value); CFRelease(dict); return result; + } } From 11da9e4b6a38cf19e8a5f83eab6ea6efa3f53e09 Mon Sep 17 00:00:00 2001 From: pi1024e Date: Sat, 3 Aug 2019 11:48:45 -0400 Subject: [PATCH 11/21] Revert "More refactoring" This reverts commit 5b9509c3c1570c5bb300213fb1ce64af3aed4d94. --- .../Stream.subproj/CFSocketStream.c | 57 +++++++++---------- 1 file changed, 27 insertions(+), 30 deletions(-) diff --git a/CoreFoundation/Stream.subproj/CFSocketStream.c b/CoreFoundation/Stream.subproj/CFSocketStream.c index 4dfcf88de0..78069bb3b0 100644 --- a/CoreFoundation/Stream.subproj/CFSocketStream.c +++ b/CoreFoundation/Stream.subproj/CFSocketStream.c @@ -200,22 +200,21 @@ CF_PRIVATE CFStreamError _CFStreamErrorFromError(CFErrorRef error) { if (canUpCall) { return CFNETWORK_CALL(_CFStreamErrorFromCFError, (error)); - } - - CFStreamError result; - CFStringRef domain = CFErrorGetDomain(error); - if (CFEqual(domain, kCFErrorDomainPOSIX)) { - result.domain = kCFStreamErrorDomainPOSIX; - } else if (CFEqual(domain, kCFErrorDomainOSStatus)) { - result.domain = kCFStreamErrorDomainMacOSStatus; - } else if (CFEqual(domain, kCFErrorDomainMach)) { - result.domain = 11; // kCFStreamErrorDomainMach, but that symbol is in CFNetwork } else { - result.domain = kCFStreamErrorDomainCustom; + CFStreamError result; + CFStringRef domain = CFErrorGetDomain(error); + if (CFEqual(domain, kCFErrorDomainPOSIX)) { + result.domain = kCFStreamErrorDomainPOSIX; + } else if (CFEqual(domain, kCFErrorDomainOSStatus)) { + result.domain = kCFStreamErrorDomainMacOSStatus; + } else if (CFEqual(domain, kCFErrorDomainMach)) { + result.domain = 11; // kCFStreamErrorDomainMach, but that symbol is in CFNetwork + } else { + result.domain = kCFStreamErrorDomainCustom; + } + result.error = CFErrorGetCode(error); + return result; } - result.error = CFErrorGetCode(error); - return result; - } CF_PRIVATE CFErrorRef _CFErrorFromStreamError(CFAllocatorRef alloc, CFStreamError *streamError) { @@ -228,21 +227,19 @@ CF_PRIVATE CFErrorRef _CFErrorFromStreamError(CFAllocatorRef alloc, CFStreamErro if (canUpCall) { return CFNETWORK_CALL(_CFErrorCreateWithStreamError, (alloc, streamError)); - } - if (streamError->domain == kCFStreamErrorDomainPOSIX) { - return CFErrorCreate(alloc, kCFErrorDomainPOSIX, streamError->error, NULL); - } - if (streamError->domain == kCFStreamErrorDomainMacOSStatus) { - return CFErrorCreate(alloc, kCFErrorDomainOSStatus, streamError->error, NULL); - } - - CFStringRef key = CFSTR("CFStreamErrorDomainKey"); - CFNumberRef value = CFNumberCreate(alloc, kCFNumberCFIndexType, &streamError->domain); - CFDictionaryRef dict = CFDictionaryCreate(alloc, (const void **)(&key), (const void **)(&value), 1, &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks); - CFErrorRef result = CFErrorCreate(alloc, CFSTR("BogusCFStreamErrorCompatibilityDomain"), streamError->error, dict); - CFRelease(value); - CFRelease(dict); - return result; - + } else { + if (streamError->domain == kCFStreamErrorDomainPOSIX) { + return CFErrorCreate(alloc, kCFErrorDomainPOSIX, streamError->error, NULL); + } else if (streamError->domain == kCFStreamErrorDomainMacOSStatus) { + return CFErrorCreate(alloc, kCFErrorDomainOSStatus, streamError->error, NULL); + } else { + CFStringRef key = CFSTR("CFStreamErrorDomainKey"); + CFNumberRef value = CFNumberCreate(alloc, kCFNumberCFIndexType, &streamError->domain); + CFDictionaryRef dict = CFDictionaryCreate(alloc, (const void **)(&key), (const void **)(&value), 1, &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks); + CFErrorRef result = CFErrorCreate(alloc, CFSTR("BogusCFStreamErrorCompatibilityDomain"), streamError->error, dict); + CFRelease(value); + CFRelease(dict); + return result; + } } } From 91c746edfe81071f1e377cb408db92ed028db266 Mon Sep 17 00:00:00 2001 From: pi1024e Date: Sat, 3 Aug 2019 11:48:58 -0400 Subject: [PATCH 12/21] Revert "Fixed" This reverts commit 894ac85404c2feb234e18e33c7b8cf634209679e. --- CoreFoundation/Stream.subproj/CFSocketStream.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/CoreFoundation/Stream.subproj/CFSocketStream.c b/CoreFoundation/Stream.subproj/CFSocketStream.c index 78069bb3b0..1bc688987c 100644 --- a/CoreFoundation/Stream.subproj/CFSocketStream.c +++ b/CoreFoundation/Stream.subproj/CFSocketStream.c @@ -191,6 +191,7 @@ CF_EXPORT void CFStreamCreatePairWithPeerSocketSignature(CFAllocatorRef alloc, c } CF_PRIVATE CFStreamError _CFStreamErrorFromError(CFErrorRef error) { + CFStreamError result; Boolean canUpCall; __CFLock(&(CFNetworkSupport.lock)); @@ -199,9 +200,8 @@ CF_PRIVATE CFStreamError _CFStreamErrorFromError(CFErrorRef error) { __CFUnlock(&(CFNetworkSupport.lock)); if (canUpCall) { - return CFNETWORK_CALL(_CFStreamErrorFromCFError, (error)); + result = CFNETWORK_CALL(_CFStreamErrorFromCFError, (error)); } else { - CFStreamError result; CFStringRef domain = CFErrorGetDomain(error); if (CFEqual(domain, kCFErrorDomainPOSIX)) { result.domain = kCFStreamErrorDomainPOSIX; @@ -213,11 +213,12 @@ CF_PRIVATE CFStreamError _CFStreamErrorFromError(CFErrorRef error) { result.domain = kCFStreamErrorDomainCustom; } result.error = CFErrorGetCode(error); - return result; } + return result; } CF_PRIVATE CFErrorRef _CFErrorFromStreamError(CFAllocatorRef alloc, CFStreamError *streamError) { + CFErrorRef result; Boolean canUpCall; __CFLock(&(CFNetworkSupport.lock)); @@ -226,20 +227,20 @@ CF_PRIVATE CFErrorRef _CFErrorFromStreamError(CFAllocatorRef alloc, CFStreamErro __CFUnlock(&(CFNetworkSupport.lock)); if (canUpCall) { - return CFNETWORK_CALL(_CFErrorCreateWithStreamError, (alloc, streamError)); + result = CFNETWORK_CALL(_CFErrorCreateWithStreamError, (alloc, streamError)); } else { if (streamError->domain == kCFStreamErrorDomainPOSIX) { - return CFErrorCreate(alloc, kCFErrorDomainPOSIX, streamError->error, NULL); + result = CFErrorCreate(alloc, kCFErrorDomainPOSIX, streamError->error, NULL); } else if (streamError->domain == kCFStreamErrorDomainMacOSStatus) { - return CFErrorCreate(alloc, kCFErrorDomainOSStatus, streamError->error, NULL); + result = CFErrorCreate(alloc, kCFErrorDomainOSStatus, streamError->error, NULL); } else { CFStringRef key = CFSTR("CFStreamErrorDomainKey"); CFNumberRef value = CFNumberCreate(alloc, kCFNumberCFIndexType, &streamError->domain); CFDictionaryRef dict = CFDictionaryCreate(alloc, (const void **)(&key), (const void **)(&value), 1, &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks); - CFErrorRef result = CFErrorCreate(alloc, CFSTR("BogusCFStreamErrorCompatibilityDomain"), streamError->error, dict); + result = CFErrorCreate(alloc, CFSTR("BogusCFStreamErrorCompatibilityDomain"), streamError->error, dict); CFRelease(value); CFRelease(dict); - return result; } } + return result; } From 3bf671991a493f68b2e5c391e52abe0ce9524268 Mon Sep 17 00:00:00 2001 From: pi1024e Date: Sat, 3 Aug 2019 11:49:01 -0400 Subject: [PATCH 13/21] Revert "Fixed whitespace" This reverts commit e11e8e32f8d43cd8762d6ffd3e1ed2ddbbd8b0c9. --- CoreFoundation/Stream.subproj/CFSocketStream.c | 1 + 1 file changed, 1 insertion(+) diff --git a/CoreFoundation/Stream.subproj/CFSocketStream.c b/CoreFoundation/Stream.subproj/CFSocketStream.c index 1bc688987c..58ae6ac663 100644 --- a/CoreFoundation/Stream.subproj/CFSocketStream.c +++ b/CoreFoundation/Stream.subproj/CFSocketStream.c @@ -226,6 +226,7 @@ CF_PRIVATE CFErrorRef _CFErrorFromStreamError(CFAllocatorRef alloc, CFStreamErro canUpCall = (CFNetworkSupport._CFErrorCreateWithStreamError != NULL); __CFUnlock(&(CFNetworkSupport.lock)); + if (canUpCall) { result = CFNETWORK_CALL(_CFErrorCreateWithStreamError, (alloc, streamError)); } else { From 06485ff9457f0a4e5db45d2c5e207cc2418282c9 Mon Sep 17 00:00:00 2001 From: pi1024e Date: Sat, 3 Aug 2019 11:49:06 -0400 Subject: [PATCH 14/21] Revert "Made methods in CFSocketStream consistent in style" This reverts commit 628b1c16d22b9dc45c9b634309b5015c2c58c69a. --- CoreFoundation/Stream.subproj/CFSocketStream.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/CoreFoundation/Stream.subproj/CFSocketStream.c b/CoreFoundation/Stream.subproj/CFSocketStream.c index 58ae6ac663..0c8e02eb53 100644 --- a/CoreFoundation/Stream.subproj/CFSocketStream.c +++ b/CoreFoundation/Stream.subproj/CFSocketStream.c @@ -220,20 +220,19 @@ CF_PRIVATE CFStreamError _CFStreamErrorFromError(CFErrorRef error) { CF_PRIVATE CFErrorRef _CFErrorFromStreamError(CFAllocatorRef alloc, CFStreamError *streamError) { CFErrorRef result; Boolean canUpCall; - + __CFLock(&(CFNetworkSupport.lock)); if (!__CFBitIsSet(CFNetworkSupport.flags, kTriedToLoad)) initializeCFNetworkSupport(); canUpCall = (CFNetworkSupport._CFErrorCreateWithStreamError != NULL); __CFUnlock(&(CFNetworkSupport.lock)); - if (canUpCall) { result = CFNETWORK_CALL(_CFErrorCreateWithStreamError, (alloc, streamError)); } else { if (streamError->domain == kCFStreamErrorDomainPOSIX) { - result = CFErrorCreate(alloc, kCFErrorDomainPOSIX, streamError->error, NULL); + return CFErrorCreate(alloc, kCFErrorDomainPOSIX, streamError->error, NULL); } else if (streamError->domain == kCFStreamErrorDomainMacOSStatus) { - result = CFErrorCreate(alloc, kCFErrorDomainOSStatus, streamError->error, NULL); + return CFErrorCreate(alloc, kCFErrorDomainOSStatus, streamError->error, NULL); } else { CFStringRef key = CFSTR("CFStreamErrorDomainKey"); CFNumberRef value = CFNumberCreate(alloc, kCFNumberCFIndexType, &streamError->domain); From aae75a86bac796c7937ce0e9a8df9f267ed9688c Mon Sep 17 00:00:00 2001 From: pi1024e Date: Sat, 3 Aug 2019 13:34:26 -0400 Subject: [PATCH 15/21] Fix for crash when attempting to retrieve name for XMLDocument --- CoreFoundation/Parsing.subproj/CFXMLInterface.c | 16 +++++++--------- TestFoundation/TestXMLDocument.swift | 8 ++++++++ 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/CoreFoundation/Parsing.subproj/CFXMLInterface.c b/CoreFoundation/Parsing.subproj/CFXMLInterface.c index 51f4732aa9..3dc188ad70 100644 --- a/CoreFoundation/Parsing.subproj/CFXMLInterface.c +++ b/CoreFoundation/Parsing.subproj/CFXMLInterface.c @@ -450,7 +450,7 @@ void _CFXMLNodeSetURI(_CFXMLNodePtr node, const unsigned char* URI) { } xmlSetNs(nodePtr, ns); - break; + return; case XML_DOCUMENT_NODE: { @@ -459,9 +459,8 @@ void _CFXMLNodeSetURI(_CFXMLNodePtr node, const unsigned char* URI) { xmlFree((xmlChar*)doc->URL); } doc->URL = xmlStrdup(URI); + return; } - break; - default: return; } @@ -469,10 +468,8 @@ void _CFXMLNodeSetURI(_CFXMLNodePtr node, const unsigned char* URI) { void _CFXMLNodeSetPrivateData(_CFXMLNodePtr node, void* data) { if (!node) { - return; + ((xmlNodePtr)node)->_private = data; } - - ((xmlNodePtr)node)->_private = data; } void* _Nullable _CFXMLNodeGetPrivateData(_CFXMLNodePtr node) { @@ -484,10 +481,10 @@ _CFXMLNodePtr _CFXMLNodeProperties(_CFXMLNodePtr node) { } CFIndex _CFXMLNodeGetType(_CFXMLNodePtr node) { - if (!node) { - return _kCFXMLTypeInvalid; + if (node) { + return ((xmlNodePtr)node)->type; } - return ((xmlNodePtr)node)->type; + return _kCFXMLTypeInvalid; } static inline xmlChar* _getQName(xmlNodePtr node) { @@ -495,6 +492,7 @@ static inline xmlChar* _getQName(xmlNodePtr node) { const xmlChar* ncname = node->name; switch (node->type) { + case XML_DOCUMENT_NODE: case XML_NOTATION_NODE: case XML_DTD_NODE: case XML_ELEMENT_DECL: diff --git a/TestFoundation/TestXMLDocument.swift b/TestFoundation/TestXMLDocument.swift index f51bd9de96..c5ecbf64cd 100644 --- a/TestFoundation/TestXMLDocument.swift +++ b/TestFoundation/TestXMLDocument.swift @@ -40,6 +40,7 @@ class TestXMLDocument : LoopbackServerTest { ("test_optionPreserveAll", test_optionPreserveAll), ("test_rootElementRetainsDocument", test_rootElementRetainsDocument), ("test_nodeKinds", test_nodeKinds), + ("test_sr10776_documentName", test_sr10776_documentName), ] } @@ -640,6 +641,13 @@ class TestXMLDocument : LoopbackServerTest { XCTAssertEqual(XMLDTDNode(xmlString: "")?.kind, .elementDeclaration) XCTAssertEqual(XMLDTDNode(xmlString: #""#)?.kind, .notationDeclaration) } + func test_SR10776_documentName() { + let doc = XMLDocument(rootElement: nil) + XCTAssertNil(doc.name) + + doc.name = "name" + XCTAssertNil(doc.name) // `name` of XMLDocument is always nil. + } } fileprivate extension XMLNode { From 0d00083e6e2cbc1d10e34c874fe8373c9d236664 Mon Sep 17 00:00:00 2001 From: pi1024e <49824824+pi1024e@users.noreply.github.com> Date: Sun, 4 Aug 2019 12:50:16 -0400 Subject: [PATCH 16/21] Update CFXMLInterface.c --- CoreFoundation/Parsing.subproj/CFXMLInterface.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CoreFoundation/Parsing.subproj/CFXMLInterface.c b/CoreFoundation/Parsing.subproj/CFXMLInterface.c index 3dc188ad70..a1c290e0d9 100644 --- a/CoreFoundation/Parsing.subproj/CFXMLInterface.c +++ b/CoreFoundation/Parsing.subproj/CFXMLInterface.c @@ -467,7 +467,7 @@ void _CFXMLNodeSetURI(_CFXMLNodePtr node, const unsigned char* URI) { } void _CFXMLNodeSetPrivateData(_CFXMLNodePtr node, void* data) { - if (!node) { + if (node) { ((xmlNodePtr)node)->_private = data; } } From 32d62034594f73ba7f3a94ed8faca639d9818914 Mon Sep 17 00:00:00 2001 From: pi1024e <49824824+pi1024e@users.noreply.github.com> Date: Sat, 10 Aug 2019 13:33:59 -0400 Subject: [PATCH 17/21] Update CFXMLInterface.c --- CoreFoundation/Parsing.subproj/CFXMLInterface.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CoreFoundation/Parsing.subproj/CFXMLInterface.c b/CoreFoundation/Parsing.subproj/CFXMLInterface.c index a1c290e0d9..2eba928293 100644 --- a/CoreFoundation/Parsing.subproj/CFXMLInterface.c +++ b/CoreFoundation/Parsing.subproj/CFXMLInterface.c @@ -450,7 +450,7 @@ void _CFXMLNodeSetURI(_CFXMLNodePtr node, const unsigned char* URI) { } xmlSetNs(nodePtr, ns); - return; + break; case XML_DOCUMENT_NODE: { @@ -459,7 +459,7 @@ void _CFXMLNodeSetURI(_CFXMLNodePtr node, const unsigned char* URI) { xmlFree((xmlChar*)doc->URL); } doc->URL = xmlStrdup(URI); - return; + break; } default: return; From dfc64d93338ac5f7415a26b24bd719ed8bf00ea9 Mon Sep 17 00:00:00 2001 From: pi1024e <49824824+pi1024e@users.noreply.github.com> Date: Sat, 10 Aug 2019 13:35:14 -0400 Subject: [PATCH 18/21] Update CFXMLInterface.c --- CoreFoundation/Parsing.subproj/CFXMLInterface.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/CoreFoundation/Parsing.subproj/CFXMLInterface.c b/CoreFoundation/Parsing.subproj/CFXMLInterface.c index 2eba928293..978d6929a8 100644 --- a/CoreFoundation/Parsing.subproj/CFXMLInterface.c +++ b/CoreFoundation/Parsing.subproj/CFXMLInterface.c @@ -467,9 +467,10 @@ void _CFXMLNodeSetURI(_CFXMLNodePtr node, const unsigned char* URI) { } void _CFXMLNodeSetPrivateData(_CFXMLNodePtr node, void* data) { - if (node) { - ((xmlNodePtr)node)->_private = data; + if (!node) { + return; } + ((xmlNodePtr)node)->_private = data; } void* _Nullable _CFXMLNodeGetPrivateData(_CFXMLNodePtr node) { From 9b22e2d983e6eb46ec8a0b28872ca67e8dfbc4d5 Mon Sep 17 00:00:00 2001 From: pi1024e Date: Sat, 10 Aug 2019 13:39:10 -0400 Subject: [PATCH 19/21] Fix --- CoreFoundation/Parsing.subproj/CFXMLInterface.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CoreFoundation/Parsing.subproj/CFXMLInterface.c b/CoreFoundation/Parsing.subproj/CFXMLInterface.c index 978d6929a8..68f4ca5515 100644 --- a/CoreFoundation/Parsing.subproj/CFXMLInterface.c +++ b/CoreFoundation/Parsing.subproj/CFXMLInterface.c @@ -470,7 +470,7 @@ void _CFXMLNodeSetPrivateData(_CFXMLNodePtr node, void* data) { if (!node) { return; } - ((xmlNodePtr)node)->_private = data; + ((xmlNodePtr)node)->_private = data; } void* _Nullable _CFXMLNodeGetPrivateData(_CFXMLNodePtr node) { From 50130f204d37faff9a923153eda6c6fb4b421efa Mon Sep 17 00:00:00 2001 From: pi1024e Date: Sat, 10 Aug 2019 13:43:29 -0400 Subject: [PATCH 20/21] Fix --- CoreFoundation/Parsing.subproj/CFXMLInterface.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CoreFoundation/Parsing.subproj/CFXMLInterface.c b/CoreFoundation/Parsing.subproj/CFXMLInterface.c index 68f4ca5515..8e0677997c 100644 --- a/CoreFoundation/Parsing.subproj/CFXMLInterface.c +++ b/CoreFoundation/Parsing.subproj/CFXMLInterface.c @@ -459,8 +459,9 @@ void _CFXMLNodeSetURI(_CFXMLNodePtr node, const unsigned char* URI) { xmlFree((xmlChar*)doc->URL); } doc->URL = xmlStrdup(URI); - break; } + break; + default: return; } From 51b54f9b6354e07a45f702f3b791989b02e0af7b Mon Sep 17 00:00:00 2001 From: pi1024e Date: Sat, 10 Aug 2019 13:46:47 -0400 Subject: [PATCH 21/21] Ingore document in Foundation --- Foundation/XMLNode.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Foundation/XMLNode.swift b/Foundation/XMLNode.swift index ca041398a1..704c379b0d 100644 --- a/Foundation/XMLNode.swift +++ b/Foundation/XMLNode.swift @@ -332,7 +332,7 @@ open class XMLNode: NSObject, NSCopying { set { if case .namespace = kind { _CFXMLNamespaceSetPrefix(_xmlNode, newValue, Int64(newValue?.utf8.count ?? 0)) - } else { + } else if .namespace != document { if let newName = newValue { _CFXMLNodeSetName(_xmlNode, newName) } else {