Čím môže byť takáto chyba spôsobená?
- Naalokuješ paměť na obrázek
- Nakreslíš do ni obrázek
- Uvolníš ji (free z libc skoro nikdy nemaže, proč taky)
- Naalokuješ paměť na jiný obrázek (malloc z libc skoro nikdy paměť neinicializuje, proč taky)
- Dostaneš paměť, kterou jsi před chvílí uvolnil
- Nakreslíš do ní omylem menší obrázek
- Zobrazíš ji celou → vidíš zbytky původního obrázky
+ totéž se může stát v driverech grafiky nebo přímo na hardwaru GPU, akorát místo alokátoru z libc se to děje přímo s fyzickou pamětí.
https://news.slashdot.org/story/16/01/11/1435237/nvidia-gpus-can-leak-data-from-google-chromes-incognito-modeKdyž něco píšeš a chceš aby to hlavně proboha fungovalo

, tak můžeš zkusit používat calloc, který paměť nuluje. Má divnější sémantiku (počet prvků a velikost prvku, ne jen počet bajtů jako malloc). Nebo si malloc obalíš vlastní funkcí (což jsem dělal ne kvůli nulování, ale proto, že když malloc selže, chci to kontrolovaně zalogovat skončit a nenechat se sestřelit až si na ten NULL sáhnu).