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

Attachment: pgpDWLm6Bd4CO.pgp
Description: PGP signature

Ответить