|
|
|
|
|
by adrian_b
1762 days ago
|
|
While C may be criticized for making it too easy to misuse pointers, for other features that are usually mentioned as security problems for C programs, e.g. out-of-bounds addressing and numeric overflow, the culprit is not the C language, but the manufacturers of the most popular CPUs, e.g. the Intel/AMD CPUs. On most modern CPUs, checking for addressing bounds or for overflow is too expensive and the software developers almost always choose speed over correctness. There have been a few C compilers with optional run-time checks for bounds and overflow, but almost nobody used those options for production code. Unlike the Intel/AMD ISA, there are other instruction sets which include a variety of exception conditions, for a cheap implementation of the run-time checks (e.g. the IBM POWER ISA), but even there I do not know if the most recent implementations of those architectures have efficient exceptions. |
|