"not enough memory for bomb detection"

Miközben azzal kísérleteztem, hogyan lehetséges egy zip fájlból Python programot futtatni, szembetalálkoztam a címbeli hibaüzenettel.

A Python zipfile moduljával tömörítettem kisebb-nagyobb fájlokat bzip2 formátumban, majd a parancssorban az értelmezőnek átadtam futtatásra az állományt - és az prüszkölt, de nem a címbeli üzenetet írta ki. Mivel az unzip -v ugyanarra az állományra nem panaszkodott, ezért a magam háza táján, azaz az állomány Pythonnal történő összeszerelési módjában (fájlsorrendben stb.-ben) kerestem a probléma okát, elég sokáig. Pedig elegendő lett volna az unzip-pel ténylegesen kibontani a fájlt, mert amikor ezt végül megkíséreltem, akkor pottyant a bomba a fejemre. Rövid keresés után kiderült a disznóság: kis fájlok bzip2 algoritmussal történő tömörítésekor lép fel a jelenség, amikor a program az ún. zip bomb detektálásának lehetetlenségére panaszkodik.

A javítás már majdnem egy évvel ezelőtt megvolt, de az Ubuntu 20.10 még (2021-01-08-ban) mindig a hibás unzip-et (libet) tartalmazza. Szörnyűség!

Teszt:

$ cd /dev/shm
$ dd if=/usr/share/dict/words of=w.txt bs=200 count=1; zip -Zb w.zip w.txt
$ unzip -v w.zip
$ yes | unzip w.zip