Hi,
* Sven Joachim <svenj...@gmx.de> [2011-03-07 17:53]:
> On 2011-03-07 17:35 +0100, Nico Golde wrote:
> 
> > * Craig Small <csm...@debian.org> [2011-03-07 10:49]:
> >> On Sun, Mar 06, 2011 at 09:38:09PM +0100, Stefano Zacchiroli wrote:
> >> > I'm not sure if the problem is in newsbeuter (e.g. using the lib in some
> >> > unappropriate way which worked up to now) or in libncursesw5 (e.g. 
> >> > unexpected/
> >> > undeclared ABI change). I'm Cc:-ing the libncursesw5 maintainer with 
> >> > this bug
> >> > report.
> >> newsbeuter is calling stfl_ipool_fromwc() which is part of the stfl
> >> package.  It's dying between stfl and ncurses.
> >> 
> >> stfl is a statically linked library
> >
> > What do you mean?
> > file libstfl.so.0.21
> > libstfl.so.0.21: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), 
> > dynamically linked, stripped
> 
> I think Craig means that newsbeuter is statically linked against libstfl.

Oh I thought I changed this ages ago, looks like I didn't hence my confusion :)

> >> , recompiling stfl and linking
> >> newsbeuter to that library makes a working binary. You can never be 100%
> >> sure, but I don't think the problem lies with newsbeuter.
> 
> It seems to be bug #617210 in ncurses.  At least, changing the offending
> code in ncurses' newwin() function back to what is was before 5.8 fixes
> the newsbeuter segfault for me (stfl is calling newwin(0, 0, 0, 0) in
> stfl_form_run()).

I can confirm what you though. I already mentioned the window is zero thus 
resulting in a null ptr dereference/invalid read. The reason is:
The created windows is passed via f->root->type->f_draw(f->root, f, dummywin);
in stfl_form_run(). The complete backtrace looks like:
#0  0x00007f66190ad5ce in stfl_style () from /usr/lib/libstfl.so.0
#1  0x00007f66190ae120 in ?? () from /usr/lib/libstfl.so.0
#2  0x00007f66190abe67 in stfl_form_run () from /usr/lib/libstfl.so.0
#3  0x00007f66190ab04e in stfl_run () from /usr/lib/libstfl.so.0

from newsbeuter the path is f->run(-3); => stfl_run() => which hits the
newwin() code in stfl.
#1  0x00007f66190ae120 in ?? () from /usr/lib/libstfl.so.0 is code in 
stfl_widget_style() and this function is called in the various drawing 
functions of stfl that are set to the f_draw function pointer.

> I'll reassign this bug to libncursesw5.

Thanks! I guess the return value check is still something that should be added 
in stfl?

Cheers
Nico
-- 
Nico Golde - http://www.ngolde.de - n...@jabber.ccc.de - GPG: 0xA0A0AAAA
For security reasons, all text in this mail is double-rot13 encrypted.

Attachment: pgpaFC7XImqkB.pgp
Description: PGP signature

Reply via email to