Re:Select Code_execution from * Using SQLite; (2019)
by laumars on Saturday June 13, 2020 @06:19PM
(#23513305)
My point is that only works if you’re writing the entire software stack. The moment you rely on someone else’s library, whether it’s to read from a file descriptor, a libc wrapper around an OS SYSCALL or whatever, you’re opening up your program to unexpected behaviour. And that’s not even taking into account the slew of very real software bugs that can be introduced from unexpected hardware behavior. Using formal method might prove your applications logic but it doesn’t prove a buffer overflow bug in a library you’ve used, or the OS you’re running on, or the compiler you’ve used from introducing a bug, nor even the hardware itself.
Computers these days are sufficiently complex and with enough abstractions that there’s no such thing as a guarantee.
Re:Select Code_execution from * Using SQLite; (2019)
by anyfoo on Saturday June 13, 2020 @10:10PM
(#23514555)
I wrote this:
> Fuzzing is only relevant where formal verification cannot be exhaustively applied (which is reality in turing complete languages), or is too cost-prohibitive.
Computers these days are sufficiently complex and with enough abstractions that there’s no such thing as a guarantee.