Hi,

I rewrote fuzzing tool (stress.sh and mangle.c) in Python. Changes:
 * Set memory limit to avoid crash of the fuzzer
 * Read extraction time to catch "timeout" error
 * Use directly hachoir-metadata library
 * Better mangle code
 * Catch Hachoir errors (and filter them) and not exceptions

I found and fixed many bugs. Example of fixed bugs:

hachoir-core: 
 * SeekableFieldSet: Fix fields creation
 * Float80: catch overflow to raise our own ValueError
 * String: value is now *ALWAYS* Unicode
 * fix createOrphanField(): use try/finally to restore old current_size

hachoir-parser:
 * CAB: validate() check number of folder (reject > 30)
 * TIFF/EXIF: reject count>200 in an IFD
 * TTF: reject name count > 300
 * GIF: raise ParserError and not just display a warning for
   invalid image marker
 * OLE2: check header consistency in validate()
 * OLE2: reject bb_shift > 14 (and not > 31)
 * OLE2: catch LookupError in getChain()
 * MPEG audio: synchronization use try/except HACHOIR_ERRORS (to be fault 
tolerant)
 * EXE resource: reject index > 300 items

hachoir-metadata is not the same software :-) It has a new API (to read value) 
and code is now fault tolerant.

I think that I will release 0.9 and 0.10 versions next week.

Haypo

Reply via email to