Я пытаюсь изменить патч регистрации сеанса ssh на sshd с сайта kdvelectronics.
Код не сильно изменился с openssh 4.x до 5.x, но теперь sshd вызывает ошибки при вызове функции script_open (как говорит gdb)
Core was generated by `sshd: root [priv] '.
Program terminated with signal 11, Segmentation fault.
#0 0x00007f687910ae69 in vfprintf () from /lib/libc.so.6
(gdb) bt
#0 0x00007f687910ae69 in vfprintf () from /lib/libc.so.6
#1 0x00007f68791a98c2 in __fprintf_chk () from /lib/libc.so.6
#2 0x000000000044ed03 in script_open ()
#3 0x000000000040ad2c in main ()
Сбой кода:
strftime(logname, sizeof(logname), "%F.%T", gmtime(&tvec));
или
snprintf(fname, sizeof(fname), "%s/openssh.%s.%08x.typescript", SCRIPTDIR, username, rnd);
Полный список script.c находится здесь http://pastebin.com/48B39K8s, я прокомментировал строку 50 и удалил переменную logname из строки 53.
Я просто хочу знать, что изменилось в glibc с 2.3, что эти функции вызывают segfault или где об этом читать.