Title: [224811] trunk/Source/bmalloc
Revision
224811
Author
sbar...@apple.com
Date
2017-11-14 01:08:06 -0800 (Tue, 14 Nov 2017)

Log Message

Make the gigacage runway 32GB
https://bugs.webkit.org/show_bug.cgi?id=175062

Reviewed by Mark Lam.

Making the gigacage runway 32GB defends us against buffer overflows in the
cage reaching memory outside the cage assuming indices are 32-bit unsigned
integers and the type they're indexing into has size <= 8 bytes. This is
exactly the case for many things in JSC. For example, butterfly access in
JSC meet this criteria, as does typed array access.

The 32GB comes from 8 * 2^32 = 32GB.

* bmalloc/Gigacage.cpp:

Modified Paths

Diff

Modified: trunk/Source/bmalloc/ChangeLog (224810 => 224811)


--- trunk/Source/bmalloc/ChangeLog	2017-11-14 09:05:33 UTC (rev 224810)
+++ trunk/Source/bmalloc/ChangeLog	2017-11-14 09:08:06 UTC (rev 224811)
@@ -1,3 +1,20 @@
+2017-11-14  Saam Barati  <sbar...@apple.com>
+
+        Make the gigacage runway 32GB
+        https://bugs.webkit.org/show_bug.cgi?id=175062
+
+        Reviewed by Mark Lam.
+
+        Making the gigacage runway 32GB defends us against buffer overflows in the
+        cage reaching memory outside the cage assuming indices are 32-bit unsigned
+        integers and the type they're indexing into has size <= 8 bytes. This is
+        exactly the case for many things in JSC. For example, butterfly access in
+        JSC meet this criteria, as does typed array access.
+        
+        The 32GB comes from 8 * 2^32 = 32GB.
+
+        * bmalloc/Gigacage.cpp:
+
 2017-11-08  Michael Catanzaro  <mcatanz...@igalia.com>
 
         Gigacage.cpp:44:46: warning: ‘*’ in boolean context, suggest ‘&&’ instead [-Wint-in-bool-context]

Modified: trunk/Source/bmalloc/bmalloc/Gigacage.cpp (224810 => 224811)


--- trunk/Source/bmalloc/bmalloc/Gigacage.cpp	2017-11-14 09:05:33 UTC (rev 224810)
+++ trunk/Source/bmalloc/bmalloc/Gigacage.cpp	2017-11-14 09:08:06 UTC (rev 224811)
@@ -39,9 +39,7 @@
 // https://bugs.webkit.org/show_bug.cgi?id=177605
 #define GIGACAGE_RUNWAY 0
 #else
-// FIXME: Consider making this 32GB, in case unsigned 32-bit indices find their way into indexed accesses.
-// https://bugs.webkit.org/show_bug.cgi?id=175062
-#define GIGACAGE_RUNWAY (16llu * 1024 * 1024 * 1024)
+#define GIGACAGE_RUNWAY (32llu * 1024 * 1024 * 1024)
 #endif
 
 char g_gigacageBasePtrs[GIGACAGE_BASE_PTRS_SIZE] __attribute__((aligned(GIGACAGE_BASE_PTRS_SIZE)));
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to