On Tue, 20 Oct 2009 23:59:18 +0400 Michael Kostylev <m...@it-1.ru> wrote:
> > On Tue Oct 20 23:40:18 2009 > Stanislav Maslovski wrote: > > >>>> grep 'icewm.*segfault' /var/log/messages > >>> Oct 20 08:00:01 debian kernel: [ 174.189321] icewm[3062]: segfault at > >>> 12a4 ip b7c033b3 sp bf8144a4 error 4 in libc-2.7.so[b7b8d000+155000] > >> По-моему так: > >> NetStatus::updateToolTip -> sprintf -> vsprintf -> vfprintf -> strlen > >> Из-под LANG=C уже не падает. > > В какой локали падает? > > В которой sprintf(status,...) не влезает в char status[400]. > ltrace показывает, что в C оно уже под 200. В моей юникодной кодировке там 280 получается. При этом в графе "online time" написан какой-то бред, а в конце стоит странная строчка "(null)". Соответственно, поправить проблему увеличением размера строки status не выходит. Лично я подозреваю вызываемый там gettext() в том, что он память попортил. -- Alexander Galanin
pgpDWLm6Bd4CO.pgp
Description: PGP signature