Hallo,
Lösung gefunden: das malloc() selbst hat nur wenig mit dem segfault zu tun. Ursache ist ein voller Heap.
Ich hatte sinngemäß Folgendes:
void func_with_malloc(int length) { char data[length]; unsigned char *srcsrc;
srcsrc = (unsigned char*) malloc(length); }
Wenn nun length zu groß wurde, fühlte sich das anschließende malloc bedrängt.
Unklar ist mir, wieso ich in dem Fall nicht bei CALL einen Heap Overflow oder ähnliches gemeldet bekomme. Und bei length=1M sollte das Limit von 8M eigentlich auch noch ein Stückchen entfernt sein. Aber gut, das Problem ist gelöst.
Viele Grüße Fabian