3 ms·
No, the bug was in code that was feeding input to ragel [1]. Ragel itself was fine. (Ragel also can output to non C languages). I've used ragel myself extensive
by Cloudef 6y ago
No, the bug was in code that was feeding input to ragel [1]. Ragel itself was fine. (Ragel also can output to non C languages). I've used ragel myself extensively and it's really rock solid, I've fuzzed the state machines it generates a lot. I've even used it to parse protobuf specifications and generate code from them, the company still uses that code. (and it's really not a lot of code)
1: https://blog.cloudflare.com/incident-report-on-memory-leak-caused-by-cloudflare-parser-bug/#comment-3172484963 https://blog.cloudflare.com/incident-report-on-memory-leak-c...
(As for cloudflare, I don't think it's good idea to let single company to MITM the whole internet)
- nicoburns 6y agoIt sounds like Ragel still requires the user to "use it correctly", which is really not great.
- Cloudef 6y agoThat's like saying driving car into a wall full speed should not kill you
- nicoburns 6y agoIt's like saying that we ideally shouldn't have cars that can drive full speed into a wall, or at least that these cars shouldn't be the cars that most people use. And indeed modern cars will generally at least attempt to break before they hit a wall. It seems not too fanciful to think that in another 10 years we will have cars that can reliably prevent themselves from being driven into walls. Our tech with regard to type and memory safety is more advanced than our car tech: we already have the tech to prevent these errors. And I believe we should be using it wherever possible. Obviously there will be exceptions (the more obvious being legacy codebases), but they should be exceptions.
- YuriNiyazov 6y agoMy Subaru will do its best to turn off the gas and auto break when it detects I’m about to drive into a wall.