Title: [187765] trunk/Source/WebKit2
Revision
187765
Author
[email protected]
Date
2015-08-03 14:30:38 -0700 (Mon, 03 Aug 2015)

Log Message

Make sure error handling code APIUserContentExtensionStore closes open file descriptors
https://bugs.webkit.org/show_bug.cgi?id=147562

Reviewed by Alex Christensen.

Make sure error handling code APIUserContentExtensionStore closes open
file descriptors to avoid leaking them.

* NetworkProcess/cache/NetworkCacheData.cpp:
(WebKit::NetworkCache::adoptAndMapFile):
* UIProcess/API/APIUserContentExtensionStore.cpp:
(API::compiledToFile):

Modified Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (187764 => 187765)


--- trunk/Source/WebKit2/ChangeLog	2015-08-03 21:27:19 UTC (rev 187764)
+++ trunk/Source/WebKit2/ChangeLog	2015-08-03 21:30:38 UTC (rev 187765)
@@ -1,3 +1,18 @@
+2015-08-03  Chris Dumez  <[email protected]>
+
+        Make sure error handling code APIUserContentExtensionStore closes open file descriptors
+        https://bugs.webkit.org/show_bug.cgi?id=147562
+
+        Reviewed by Alex Christensen.
+
+        Make sure error handling code APIUserContentExtensionStore closes open
+        file descriptors to avoid leaking them.
+
+        * NetworkProcess/cache/NetworkCacheData.cpp:
+        (WebKit::NetworkCache::adoptAndMapFile):
+        * UIProcess/API/APIUserContentExtensionStore.cpp:
+        (API::compiledToFile):
+
 2015-08-03  Beth Dakin  <[email protected]>
 
         Need WKWebView API to enable/disable link preview

Modified: trunk/Source/WebKit2/NetworkProcess/cache/NetworkCacheData.cpp (187764 => 187765)


--- trunk/Source/WebKit2/NetworkProcess/cache/NetworkCacheData.cpp	2015-08-03 21:27:19 UTC (rev 187764)
+++ trunk/Source/WebKit2/NetworkProcess/cache/NetworkCacheData.cpp	2015-08-03 21:30:38 UTC (rev 187765)
@@ -86,8 +86,10 @@
 
 Data adoptAndMapFile(int fd, size_t offset, size_t size)
 {
-    if (!size)
+    if (!size) {
+        close(fd);
         return Data::empty();
+    }
 
     void* map = mmap(nullptr, size, PROT_READ, MAP_PRIVATE, fd, offset);
     if (map == MAP_FAILED) {

Modified: trunk/Source/WebKit2/UIProcess/API/APIUserContentExtensionStore.cpp (187764 => 187765)


--- trunk/Source/WebKit2/UIProcess/API/APIUserContentExtensionStore.cpp	2015-08-03 21:27:19 UTC (rev 187764)
+++ trunk/Source/WebKit2/UIProcess/API/APIUserContentExtensionStore.cpp	2015-08-03 21:30:38 UTC (rev 187765)
@@ -253,15 +253,21 @@
     char invalidHeader[ContentExtensionFileHeaderSize];
     memset(invalidHeader, 0xFF, sizeof(invalidHeader));
     // This header will be rewritten in CompilationClient::finalize.
-    if (WebCore::writeToFile(temporaryFileHandle, invalidHeader, sizeof(invalidHeader)) == -1)
+    if (WebCore::writeToFile(temporaryFileHandle, invalidHeader, sizeof(invalidHeader)) == -1) {
+        WebCore::closeFile(temporaryFileHandle);
         return UserContentExtensionStore::Error::CompileFailed;
+    }
 
     CompilationClient compilationClient(temporaryFileHandle, metaData);
     
-    if (auto compilerError = compileRuleList(compilationClient, WTF::move(json)))
+    if (auto compilerError = compileRuleList(compilationClient, WTF::move(json))) {
+        WebCore::closeFile(temporaryFileHandle);
         return compilerError;
-    if (compilationClient.hadErrorWhileWritingToFile())
+    }
+    if (compilationClient.hadErrorWhileWritingToFile()) {
+        WebCore::closeFile(temporaryFileHandle);
         return UserContentExtensionStore::Error::CompileFailed;
+    }
     
     mappedData = adoptAndMapFile(temporaryFileHandle, 0, metaData.fileSize());
     if (mappedData.isNull())
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to