The hardening logic in the FastMalloc implementation works fine on Windows (with a couple of small changes to work around some Visual Studio compiler bugs). Let's turn it on so that we can have comparable safety to our other ports!
<rdar://problem/14986554>
Created attachment 211563 [details] Patch
Comment on attachment 211563 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=211563&action=review r=me with comments > Source/WTF/wtf/FastMalloc.cpp:110 > +#if (COMPILER(GCC) || COMPILER(MSVC)) && !PLATFORM(QT) maybe we can just try !PLATFORM(QT) and see what happens? > Source/WTF/wtf/FastMalloc.cpp:840 > +#if COMPILER(MSVC) > + void* tValNext = *(reinterpret_cast<void**>(t.value())); // FIXME: This exists to work around a MSVC bug > + return HardenedSLL::create(XOR_MASK_PTR_WITH_KEY(tValNext, t.value(), entropy)); > +#else > return HardenedSLL::create(XOR_MASK_PTR_WITH_KEY(*(reinterpret_cast<void**>(t.value())), t.value(), entropy)); > +#endif Remove the #if MSVC and just always use that path. It's conceivable that it's a "legitimate" piece of behaviour and it really shouldn't hurt.
Committed r155717: <http://trac.webkit.org/changeset/155717>