V C jde psat spravny kod, ale vyvojari jadra balancuji na hrane vykonu z mikrooptimalizaci - assumed chovani ktere se rychle muze zmenit, jakmile se to pripoji do vetsiho celku, nebo nedej boze nekdo neco prekope na druhe strane, protoze uz tak nejak to je jejich denni zabava.
Existuji metodologie pro psani bezpecneho C kodu (bohuzel neaplikovatelne na jadro).
Pak existuje formalni verifikace (ale to by nekdo musel pro to neco udelat).
Existuje runtime analyza v debug modu, skrze asserty ... ale to jsem uz davno nevidel aktivne pouzito, navic se k tomu Linus vyjadroval nehezky.. proste kod ktery kontroluje chyby ma byt soucasti release a ne test rezimu.
A pak existuji staticke analyzatory (to by zas nekdo musel aktivne pouzivat - namisto toho, aby to poustel nejaky security vyzkumnik a pak prisel na bug).
AI se radi spis do te staticke analyzy, ale produkuje hodne false positives (z principu), coz se trocha casem lepsi a jakmile je tam vetsi odstup signal-sum, tak je vysledek nalezena buga.