Corrupted Memory Issues - APar_FindAtom & APar_PrintAtomicTree
In file parsley.cpp on line 703:
sscanf(search_atom_name+5, "%hhu", &desired_index);
Causes the stack around the variable desired_index to be corrupted. This reads 32 bits into an 8 bit field. Changing the delcaration of desired_index to uint32_t fixes the problem.
In file metalist.cpp on line 1450:
unsigned char unpacked_lang;
The array should be 4 bytes, not 3, as the following statement APar_UnpackLanguage writes 4 bytes to this field.