Многие наверное уже видели это сообщение. Оказывается, есть еще убогие люди, использующие strcpy. Из-за них в 2010 году мы продолжаем получать примитивнейшие переполнения буфера в стеке как и 20 лет назад. К счастью, прогресс не стоит не месте, и специально для таких людей придумали особый костыль для компилятора. В OpenBSD он уже давно используется под именем ProPolice, в линуксах он появился относительно недавно под именем SSP и FORTIFY_SOURCE (точнее это два разных костыля, но суть от этого не меняется). В общем костыли успешно работают, ура.
$ perl -e 'print "gitdir: ".("A"x5000)."\n"' >.git $ git log *** buffer overflow detected ***: git terminated ======= Backtrace: ========= /lib/tls/i686/cmov/libc.so.6(__fortify_fail+0x50)[0x1f2390] /lib/tls/i686/cmov/libc.so.6(+0xe12ca)[0x1f12ca] /lib/tls/i686/cmov/libc.so.6(__strcpy_chk+0x44)[0x1f0644] git[0x80f198c] git[0x80f1bfd] git[0x80f1dc4] git[0x80f2043] git[0x804b525] git[0x804b5ee] /lib/tls/i686/cmov/libc.so.6(__libc_start_main+0xe6)[0x126bd6] git[0x804ae31]