News for hackers. Stuff that matters.
Re:Modern C [pdf] by sidlls on Monday November 28, 2016 @03:01PM (#13057919)
Well, yes, I agree in general bounds should be checked at runtime when it isn't possible to statically verify access at compile time.

I'm not sure how default access in C or C++ isn't explicitly avoiding checks. By definition "a[b]" is an unchecked dereference. It doesn't get more explicit than "by definition." Of course if by "explicit" you mean "syntax exists that demarcates unchecked access" then C and C++ will never satisfy. I'd argue that's a contrived and artificially narrow use of "explicit" meant, er, explicitly to exclude C and C++ from being acceptable by definition and therefore not terribly fair.

Re:Modern C [pdf] by junke on Monday November 28, 2016 @04:39PM (#13058670)
Re:Modern C [pdf] by sidlls on Monday November 28, 2016 @06:51PM (#13059453)
Yes (Rust's "unsafe" blocks serve the same purpose), and my point is you're narrowing the definition of "explicit" to exclude C or C++ by definition. And that isn't exactly a fair, in my view.
Re:Modern C [pdf] by junke on Tuesday November 29, 2016 @06:40AM (#13062407)
There is no doubt that C, by definition, opts out from performing bound checkings. But if bounds were always checked by default (implicitly), then you would have to opt-out explicitly, which is a safer approach, because all else being equal, in case of a programming mistake, the code ends up not being vulnerable to that specific kind of attack.