> Perhaps in defense of Ken Thompson and Dennis Ritchie, C (and Unix, for
> that matter) was created not for masses of incompetent programmers, but
> for Ken and Dennis and a few immediate colleagues.
Which only serves to emphasize Henry's point. The code that those "few
immediate colleagues" wrote also suffered from buffer overflow problems.
Not only did many ordinary commands written at Bell Labs fail given long
enough lines, but in one early version of UNIX, the (written in C) login
command had a buffer overflow problem that permitted anyone to login by
providing sufficiently long input.
In other words, C buffer overflows have caused security problems ever since
the language was created; and even the earliest users of C have been caught
by it. If software were really an engineering field, we would learn as
engineers do to avoid tools and methods that persistently lead to serious
problems.
Note that gcc, the very popular GNU C Compiler, has experimental extensions
to support bounds checking; see http://gcc.gnu.org/extensions.html. Let us
hope that one of these extensions makes its way out of the laboratory soon.
If it became a standard gcc option, the current sorry situation might begin
to improve. [Dan Franklin via risks-digest Volume 21, Issue 85]
0:00
#
G!