IMHO nejde o 726 jasných problémů, ale 726 možných problémů. Teď bude chtít celý seznam nalezených problematických míst projít a na základě znalosti kódu vyřadit plané poplachy.
su - \mathfrak{M}ĦĒNJMARCHON (neregistrovaný)
IMHO ziadny automaticky nastroj nedokaze rozlisit "skutocny problem" od "potencialneho problemu". Mam s par testovatkami skusenosti (napr. valgrind, java findbugs, nejaky C-ckove udelatko...)
Napr. pri pythone valgrind sype "invalid read" (pokial sa nezadefinuje urcity preprocessor symbol) takmer v kuse, pretoze python ma vlastny alokator pamate, alokuje pamat na "areny", co su 4-kB kusy pamate zarovnane na hranicu 4kB. Ak by nejaka architektura mala stranky mensie nez 4kB, tak by namiesto testu, ci je dana alokovana pamat uz "claimnuta ako arena", by sposobil segfault (nepamatam si to uz uplne presne, ale cca pred rokom som riesil ten problem, nakoniec sa ukazali memory leaky v nasej app).
Podobne, jedno C-ckove udelatko sa "chytalo" na strcpy, pricom strncpy ohodnotilo ako OK.
Lenze:
-pred strcpy sa da samozrejme porovnat a otestovat maximum
-pri strncpy sa to da zase naopak pos..t (ak sa clovek dost snazi ;-))
Napr. dost pochybujem, ze by nejake udelatko dokazalo vo FF detekovat, ze dakde mu chyba wait(), co je uz nakoniec mozno opravene, ale pamatam si, ze obcas nejake child procesy ostavali visiet.
su - \mathfrak{M}ĦĒNJMARCHON (neregistrovaný)
K pythonu: bola tam funkcia int is_arena(void * addr) alebo podobneho nazvu/signatury. Otestovala ci na adrese addr&0xfffff000 je "signatura" pythonovskeho alokatora. Tj. ak dostala nejaky kus pamate alokovany obycajnym mallocom, sahala casto do neinicializovanej (pripadne nealokovanej) pamate. Ze to nesegfaultlo rovno je dane tym, ze (snad vsetky zname) architektury pouzivaju aspon 4kB stranky, inak by pagefault handler zistil, ze sa deje nejaky bordel. V podobnom zmysle je mozne najst v zdrojakoch pythonu komentar. Pre tu srandu, pregrepujte si zdrojaky pythonu na vyraz 'valgrind' :-)
Robert O'Callahan, jeden z hlavních vývojářů Gecka, má k balíku 726 možných problémů komentář Static Analysis And Scary Headlines, kde v podstatě potvrzuje můj předpoklad: zatím z těch sedmi stovek jsou potvrzené 3–4 chyby, většina ostatních byla označena jako falešné poplachy. V komentáři je uveden i jeden příklad konkrétního planého poplachu.