Segfault (от D.U.M.A.) в строке 41:

29: char *buf = malloc(SIZE);
41: buf[SIZE+i] = SIZE+i; // i=6

Особенно доставляет что i=6. Т.е. за границу памяти вылезли уже на 7 байт.
Just because DUMA_MIN_ALIGNMENT = 8 (ARM EABI, привет родной).

А ещё неизвестно откуда прилетает KILL, когда прожка уютно аллоцировала 420MB. Причём только вместе с libduma. Психопатический swap на NFS не помогает. И кажется этот kill не от OOM killer. Чудесный мир Embedded Linux и arm5tejl .