Doesn't the first edition use K&R style parameter lists and other no-longer-correct syntax?
BatmanAoD
I think generally C compilers prefer to keep the stack intact for debugging and such.
Okay, yeah, I was indeed reading your original reply as a criticism of one of the people involved (presumably the security researcher), rather than as a criticism of the post title. Sorry for misunderstanding.
Apparently GCC does indeed do tail-call optimization at -O2
: https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#index-foptimize-sibling-calls
But in that case, I'm not sure why the solution to the denial of service vulnerability isn't just "compile with -foptimize-sibling-calls
."
...what is your point? Some software (in a language that doesn't have tail-recursion optimization) used recursion to handle user-provided input, and indeed it broke. Someone wrote to explain that that's a potential vulnerability, the author agreed, and fixed it. Who here is misunderstanding how computers implement recursion?
Probably moreso for expressing the opinion so strongly without actually knowing any of the three languages.
Edit: I'm just guessing why a different comment got downvotes. Why am I getting downvotes?