Vlákno názorů k článku Programujeme JPEG: Načtení informací ze souborů typu JFIF/JPEG od anonym - Samozrejme ze to nesouvisi s tematem, ale pokud...

  • Článek je starý, nové názory již nelze přidávat.
  • 1. 2. 2007 8:05

    anonymní
    Samozrejme ze to nesouvisi s tematem, ale pokud je kod kompletni, nezapomen me na osetreni mist mozneho napadani.

    Vsiml jsem si jen tak zbezne v kodu jpeg_info-117025712453077.c

    typedef struct JpegInfo {
    ...
    char fname[200]; // jmeno zdrojoveho souboru
    ...
    } JpegInfo;

    nazev souboru je maximalne 200 znaku, ale
    dovolime zapsat znaku i vice, bez limitu.

    viz ..

    strcpy(jpegInfo->fname, fileName);

    zadny test poctu znaku v nazvu(muze jich byt i vice nez 200), ani pri ulozeni do pameti.
    Doporucuji alespon

    char *strncpy(char *dest, const char *src, size_t n);

    kde omezime pocet kopirovanych znaku.

    Chtel bych poprosit autora clanku aby zduraznil, kde umyslne zmenenym cislem v hlavicce obrazku muzeme zpusobit pad programu. Takzvany jpeg virus.
  • 1. 2. 2007 10:19

    Pavel Tišnovský
    Zlatý podporovatel
    Mas samozrejme pravdu, diky za upozorneni. Jinak ten nazev se nenacita z obrazku, takze toto neni pripad, ze by mohl dekoder v zavislosti na datech spadnout.

    Mam dojem, ze tech moznosti, jak zpusobit pad programu (nebo v "lepsim" pripade preteceni bufferu) je vice a zalezi hlavne na dekoderu, jak se s tim popere. Pred nekolika lety (2004?) byl nejaky problem s Windows u programu, ktere pro vykreslovani JPEGu pouzily funkce Win32 GDI. Programy, ktere implementovaly vlastni dekoder, byly bezproblemove.