Я полагаю, что (child_pid == -1)
не введено ... Отцовская (else
) ветвь введена дважды (обоими процессами) или как?
В любом случае я не вижу ошибки в этом фрагменте кода. Если вы уверены, что ваш поток выполнения попал туда и имеет непредсказуемое поведение из-за ошибки.
Я сомневаюсь, что glibc содержит ошибки в вашей системе: я думаю, ваша программа имеет сломанный указатель, который сломал все. Это самая распространенная причина такого необычного поведения.