HNNewShowAskJobs
Built with Tanstack Start
Hardening the C++ Standard Library at scale(queue.acm.org)
41 points by ndesaulniers 7 days ago | 7 comments
  • tialaramexan hour ago

    > those that lead to undefined behavior but aren't security-critical.

    Once again C++ people imagining into existence Undefined Behaviour which isn't Security Critical as if somehow that's a thing.

    Mostly I read the link because I was intrigued as to how this counted as "at scale" and it turns out that's misleading, the article's main body is about the (at scale) deployment at Google, not the actual hardening work itself which wasn't in some special way "at scale".

    • AshamedCaptain37 minutes ago |parent

      Of course there is undefined behavior that isn't security critical. Hell, most bugs aren't security critical. In fact, most software isn't security critical, at all. If you are writing software which is security critical, then I can understand this confusion; but you have to remember that most people don't.

      The author of TFA actually makes another related assumption:

      > A crash from a detected memory-safety bug is not a new failure. It is the early, safe, and high-fidelity detection of a failure that was already present and silently undermining the system.

      Not at all? Most memory-safety issues will never even show up in the radar, while with "Hardening" you've converted all of them into crashes that for sure will, annoying customers. Surely there must be a middle ground, which leads us back to the "debug mode" that the article is failing to criticize.

      • gishh2 minutes ago |parent

        Most people around here are too busy evangelizing rust or some web framework.

        Most people around here don’t have any reason to have strong opinions about safety-critical code.

        Most people around here spend the majority of their time trying to make their company money via startup culture, the annals of async web programming, and how awful some type systems are in various languages.

        Working on safety-critical code with formal verification is the most intense, exhausting, fascinating work I’ve ever done.

        Most people don’t work a company that either needs or can afford a safety-critical toolchain that is sufficient for formal, certified verification.

        The goal of formal verification and safety critical code is _not_ to eliminate undefined behavior, it is to fail safely. This subtle point seems to have been lost a long time ago with “*end” developers trying to sell ads, or whatever.

      • charleslmunger13 minutes ago |parent

        >Not at all? Most memory-safety issues will never even show up in the radar

        Citation needed? There's all sorts of problems that don't "show up" but are bad. Obvious historical examples would be heartbleed and cloudbleed, or this ancient GTA bug [1].

        1: https://cookieplmonster.github.io/2025/04/23/gta-san-andreas...

      • samdoesnothing5 minutes ago |parent

        nooooo you don't understand, safety is the most important thing ever for every application, and everything else should be deprioritized compared to that!!!

  • on_the_train20 minutes ago

    std::optional is unsafe in idiomatic use cases? I'd like to challenge that.

    Seems like the daily anti c++ post

    • steveklabnik7 minutes ago |parent

      Two of the authors are libc++ maintainers and members of the committee, it would be pretty odd if they were anti C++.