Ohh, it might even be simpler than that. Just ran it through valgrind, this is without any /etc/preinit.d scripts (and ofcourse not on the player itself).

==13932== Invalid write of size 4
==13932== at 0x8048D39: main (empeg-preinit.c:226)
==13932== by 0x4025D0BF: (within /lib/libc-2.2.5.so)
==13932== by 0x80486F1: alarm:GLIBC_2.0 (in /home/jaharkes/empeg/gps/empeg-preinit.v4/empeg-preinit.test)
==13932== Address 0x42AE2060 is 0 bytes after a block of size 4 alloc'd
==13932== at 0x4004328B: malloc (vg_clientfuncs.c:100)
==13932== by 0x8048CFD: main (empeg-preinit.c:216)
==13932== by 0x4025D0BF: (within /lib/libc-2.2.5.so)

which points at this

empeg-preinit.c:216
- mounttime = malloc(sizeof(struct filelist *));
+ mounttime = malloc(sizeof(struct filelist));
_________________________
40GB - serial #40104051 gpsapp