Сегодня я узнал, что если запустить компиляцию с флагом

gcc -fsanitize=address
То можно найти ошибку переполнения памяти.