Hlavní navigace

Názor ke zprávičce Microsoft vydal doplněk Checked C pro dynamickou kontrolu mezí v LLVM/clang od Lael Ophir - Nevím jestli projekt řeší use-after-free. Pokud na to...

  • Aktualita je stará, nové názory již nelze přidávat.
  • 17. 6. 2016 18:11

    Lael Ophir (neregistrovaný)

    Nevím jestli projekt řeší use-after-free. Pokud na to koukám, tak bych nevylučoval, že to řešené je.
    https://github.com/Microsoft/checkedc/releases/download/v0.5-final/checkedc-v0.5.pdf

    Pokud jde o váš kód a nevadí vám že z něj pak není čisté C, tak není problém.

    Ad Pokud si chci dát takovou práci, abych opravil všechny zdrojáky, tak už se vyplatí použít jiný jazyk - přepisovat kód je většinou velká chyba. Navíc mi není jasné, do čeho byste chtěl přepsat kernel OS nebo DB engine. A i kdybyste chtěl jít do vyššího jazyka (vizte Singularity OS), což je podle mě celkem dobrá myšlenka, tak to znamená velkou změnu designu, obrovskou spoustu práce, ztrátu kompatibility atd. Ve srovnání s tím může být lepší zabezpečit stávající kód, zvlášť pokud je dobře navržený.
    http://research.microsoft.com/en-us/projects/singularity/#publications

    Netvrdím že Checked C je nejlepší možnost nebo že bude někdy použité v praxi. Minimálně ale ukazuje jednu z cest.

    Ad použitím moderních jazyků můžeš díky lepší statické analýze a typovému systému spoustě z těch chyb předejít - na tom se určitě shodneme. Ovšem zatím co na aplikační vrstvě se vyšší jazyky používají dobře, na úrovni systémového SW je to obtížnější. A kombinace problémů s výkonem a legacy code znamená že máme v C/C++ psaný nejen OS, ale i DB engine, a trestuhodně dokonce browser.