LWN: Comments on "Google series on in-the-wild exploits" https://lwn.net/Articles/842395/ This is a special feed containing comments posted to the individual LWN article titled "Google series on in-the-wild exploits". en-us Fri, 17 Oct 2025 22:44:58 +0000 Fri, 17 Oct 2025 22:44:58 +0000 https://www.rssboard.org/rss-specification lwn@lwn.net Google series on in-the-wild exploits https://lwn.net/Articles/843107/ https://lwn.net/Articles/843107/ ibukanov <div class="FormattedComment"> The real problem is the use after free. Modern C++ provides enough features to get it. And with std::span and string_view one gets even more rope to hang themselves.<br> <p> </div> Tue, 19 Jan 2021 12:26:47 +0000 Google series on in-the-wild exploits https://lwn.net/Articles/842910/ https://lwn.net/Articles/842910/ zlynx <div class="FormattedComment"> I have seen C++ code trying to do everything correctly and still created two unique_ptrs to the same object. Double free! It can also happen with a unique_ptr and a shared_ptr.<br> <p> Modern C++ makes it less likely but it isn&#x27;t impossible.<br> </div> Sat, 16 Jan 2021 20:44:38 +0000 Google series on in-the-wild exploits https://lwn.net/Articles/842892/ https://lwn.net/Articles/842892/ mpr22 <div class="FormattedComment"> For libraries in particular, C is the lowest common denominator. Implementing FFI infrastructure for C libraries is easy (you don&#x27;t need to understand e.g. C++ symbol mangling), and every language whose users are likely to be interested in invoking external libraries not written in that language has a C FFI infrastructure.<br> </div> Sat, 16 Jan 2021 16:00:14 +0000 Google series on in-the-wild exploits https://lwn.net/Articles/842890/ https://lwn.net/Articles/842890/ mss <div class="FormattedComment"> <font class="QuotedText">&gt; It&#x27;s hard to understand why new C development is still tolerated: slower, naturally insecure, and markedly less productive.</font><br> <p> It is a peculiarity of grassroots open source projects which I don&#x27;t really get either.<br> <p> Where the project was started by a company C++ is nearly always used for the reasons you have mentioned.<br> See: both browsers, clang, Qt, OpenCV, LibreOffice, VirtualBox...<br> Even GCC started to be partially implemented in C++ when Ian Lance Taylor from Google worked on it.<br> <p> But for Glib / GTK and many smaller open source projects we are stuck with C for some reason, with hand-written OOP requiring significant amounts of boilerplate code, usually without automatic type checking when casting, lacking RAII or good generic containers and algorithms.<br> <p> Many parts (most?) of Glib wouldn&#x27;t even be necessary had GTK been implemented in C++.<br> <p> </div> Sat, 16 Jan 2021 15:36:35 +0000 Google series on in-the-wild exploits https://lwn.net/Articles/842885/ https://lwn.net/Articles/842885/ ras <div class="FormattedComment"> <a href="https://1.bp.blogspot.com/-zWgmKrcnjv8/X_4pAn_ymUI/AAAAAAAAanU/fBqLBzSDt7ks8lax9SI1f-QkmTj31k-JwCNcBGAsYHQ/s1359/timeline.png">https://1.bp.blogspot.com/-zWgmKrcnjv8/X_4pAn_ymUI/AAAAAA...</a> is a graph from those blog posts showing when chrome was vulnerable to 4 exploits. If you turn off auto upgrades and somehow knew how to tip toe between the vulnerabilities you would indeed be able to Chrome in safely - from the listed exploits at least.<br> <p> Geeze we suck.<br> </div> Sat, 16 Jan 2021 09:57:14 +0000 Google series on in-the-wild exploits https://lwn.net/Articles/842749/ https://lwn.net/Articles/842749/ ncm <div class="FormattedComment"> I was impressed at the very large fraction of exploits based on double-free events. Used to be, buffer overruns ruled, but have faded.<br> <p> Double-free never happens in modern C++ code. Or most things, really. It&#x27;s hard to understand why new C development is still tolerated: slower, naturally insecure, and markedly less productive.<br> </div> Fri, 15 Jan 2021 04:11:26 +0000 Google series on in-the-wild exploits https://lwn.net/Articles/842674/ https://lwn.net/Articles/842674/ mss <div class="FormattedComment"> Nice series, even if a bit long read.<br> <p> Shows well how hard is to translate a &quot;safe&quot; language like JavaScript into an &quot;unsafe&quot; ISA like x86 or ARM.<br> Explicit checks are needed since many invalid operations might not cause an exception at the hardware level.<br> <p> However, for example, bounds checking every memory access would ruin performance so JIT compilers try to be smart<br> and avoid checking where they can prove the access will always be within the accessed object bounds.<br> Which, in general, is a hard thing to do, so we get a constant stream of bugs.<br> <p> This will always be a problem until CPUs somehow implement efficient per-object bounds checking and which-object-tagged memory accesses.<br> <p> </div> Thu, 14 Jan 2021 14:45:41 +0000