Modified: trunk/Source/WebKit/ChangeLog (249888 => 249889)
--- trunk/Source/WebKit/ChangeLog 2019-09-16 00:41:07 UTC (rev 249888)
+++ trunk/Source/WebKit/ChangeLog 2019-09-16 05:51:49 UTC (rev 249889)
@@ -1,3 +1,14 @@
+2019-09-15 David Kilzer <[email protected]>
+
+ REGRESSION (r248592): Leak of CFDictionaryRef in WebKit::NetworkRTCProvider::proxyInfoFromSession()
+ <https://webkit.org/b/201811>
+
+ Reviewed by Youenn Fablet.
+
+ * NetworkProcess/webrtc/NetworkRTCProvider.mm:
+ (WebKit::NetworkRTCProvider::proxyInfoFromSession): Use
+ RetainPtr<> to fix the leak.
+
2019-09-14 Adrian Perez de Castro <[email protected]>
[GTK][WPE] Check for a Snap sandbox a bit harder
Modified: trunk/Source/WebKit/NetworkProcess/webrtc/NetworkRTCProvider.mm (249888 => 249889)
--- trunk/Source/WebKit/NetworkProcess/webrtc/NetworkRTCProvider.mm 2019-09-16 00:41:07 UTC (rev 249888)
+++ trunk/Source/WebKit/NetworkProcess/webrtc/NetworkRTCProvider.mm 2019-09-16 05:51:49 UTC (rev 249889)
@@ -32,6 +32,7 @@
#include <WebCore/LibWebRTCMacros.h>
#include <webrtc/rtc_base/asyncpacketsocket.h>
#include <webrtc/rtc_base/logging.h>
+#include <wtf/RetainPtr.h>
namespace WebKit {
@@ -72,19 +73,19 @@
{
// FIXME: We should check for kCFNetworkProxiesExceptionsList to decide whether to use proxy or not.
// FIXME: We should also get username/password for authentication cases.
- auto proxyDictionary = static_cast<NetworkSessionCocoa&>(session).proxyConfiguration();
+ RetainPtr<CFDictionaryRef> proxyDictionary = static_cast<NetworkSessionCocoa&>(session).proxyConfiguration();
if (!proxyDictionary)
- proxyDictionary = CFNetworkCopySystemProxySettings();
+ proxyDictionary = adoptCF(CFNetworkCopySystemProxySettings());
#if PLATFORM(MAC)
- if (isEnabled(proxyDictionary, kCFNetworkProxiesHTTPSEnable))
- return createRTCProxy(proxyDictionary, rtc::PROXY_HTTPS, kCFNetworkProxiesHTTPSProxy, kCFNetworkProxiesHTTPSPort);
+ if (isEnabled(proxyDictionary.get(), kCFNetworkProxiesHTTPSEnable))
+ return createRTCProxy(proxyDictionary.get(), rtc::PROXY_HTTPS, kCFNetworkProxiesHTTPSProxy, kCFNetworkProxiesHTTPSPort);
- if (isEnabled(proxyDictionary, kCFNetworkProxiesSOCKSEnable))
- return createRTCProxy(proxyDictionary, rtc::PROXY_SOCKS5, kCFNetworkProxiesSOCKSProxy, kCFNetworkProxiesSOCKSPort);
+ if (isEnabled(proxyDictionary.get(), kCFNetworkProxiesSOCKSEnable))
+ return createRTCProxy(proxyDictionary.get(), rtc::PROXY_SOCKS5, kCFNetworkProxiesSOCKSProxy, kCFNetworkProxiesSOCKSPort);
#endif
#if PLATFORM(IOS)
- if (isEnabled(proxyDictionary, kCFNetworkProxiesHTTPEnable))
- return createRTCProxy(proxyDictionary, rtc::PROXY_HTTPS, kCFNetworkProxiesHTTPProxy, kCFNetworkProxiesHTTPPort);
+ if (isEnabled(proxyDictionary.get(), kCFNetworkProxiesHTTPEnable))
+ return createRTCProxy(proxyDictionary.get(), rtc::PROXY_HTTPS, kCFNetworkProxiesHTTPProxy, kCFNetworkProxiesHTTPPort);
#endif
return { };
}