Title: [220178] trunk/Source/WebKit
Revision
220178
Author
[email protected]
Date
2017-08-02 20:53:05 -0700 (Wed, 02 Aug 2017)

Log Message

NetworkRTCProvider::createResolver() leaks CFHost objects
https://bugs.webkit.org/show_bug.cgi?id=175103
<rdar://problem/33690347>

Reviewed by Youenn Fablet.

Add a missing adoptCF() so we don't leak the CFHost.

* NetworkProcess/webrtc/NetworkRTCProvider.cpp:
(WebKit::NetworkRTCProvider::createResolver):

Modified Paths

Diff

Modified: trunk/Source/WebKit/ChangeLog (220177 => 220178)


--- trunk/Source/WebKit/ChangeLog	2017-08-03 03:49:53 UTC (rev 220177)
+++ trunk/Source/WebKit/ChangeLog	2017-08-03 03:53:05 UTC (rev 220178)
@@ -1,3 +1,16 @@
+2017-08-02  Andreas Kling  <[email protected]>
+
+        NetworkRTCProvider::createResolver() leaks CFHost objects
+        https://bugs.webkit.org/show_bug.cgi?id=175103
+        <rdar://problem/33690347>
+
+        Reviewed by Youenn Fablet.
+
+        Add a missing adoptCF() so we don't leak the CFHost.
+
+        * NetworkProcess/webrtc/NetworkRTCProvider.cpp:
+        (WebKit::NetworkRTCProvider::createResolver):
+
 2017-08-02  Jeremy Jones  <[email protected]>
 
         Remove unused and obsolete setting mediaDocumentEntersFullscreenAutomatically

Modified: trunk/Source/WebKit/NetworkProcess/webrtc/NetworkRTCProvider.cpp (220177 => 220178)


--- trunk/Source/WebKit/NetworkProcess/webrtc/NetworkRTCProvider.cpp	2017-08-03 03:49:53 UTC (rev 220177)
+++ trunk/Source/WebKit/NetworkProcess/webrtc/NetworkRTCProvider.cpp	2017-08-03 03:53:05 UTC (rev 220178)
@@ -163,15 +163,12 @@
 
 void NetworkRTCProvider::createResolver(uint64_t identifier, const String& address)
 {
-    CFHostRef host = CFHostCreateWithName(kCFAllocatorDefault, address.createCFString().get());
-    ASSERT(host);
+    auto resolver = std::make_unique<Resolver>(identifier, *this, adoptCF(CFHostCreateWithName(kCFAllocatorDefault, address.createCFString().get())));
 
-    auto resolver = std::make_unique<Resolver>(identifier, *this, host);
-
     CFHostClientContext context = { 0, resolver.get(), nullptr, nullptr, nullptr };
-    CFHostSetClient(host, NetworkRTCProvider::resolvedName, &context);
-    CFHostScheduleWithRunLoop(host, CFRunLoopGetCurrent(), kCFRunLoopDefaultMode);
-    Boolean result = CFHostStartInfoResolution(host, kCFHostAddresses, nullptr);
+    CFHostSetClient(resolver->host.get(), NetworkRTCProvider::resolvedName, &context);
+    CFHostScheduleWithRunLoop(resolver->host.get(), CFRunLoopGetCurrent(), kCFRunLoopDefaultMode);
+    Boolean result = CFHostStartInfoResolution(resolver->host.get(), kCFHostAddresses, nullptr);
     ASSERT_UNUSED(result, result);
 
     m_resolvers.add(identifier, WTFMove(resolver));
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to