Comment 54 for bug 529714

Chow Loong Jin (hyperair) wrote :

Okay, I think I've found the issue, based on a crash with liferea:-

At wins.c:95, we have
DEBUGLEVEL = 0;

Somewhere in source3/include/debug.h, we have
#define DEBUGLEVEL *debug_level
extern int DEBUGLEVEL;

In source3/lib/debug.c, we have:
int DEBUGLEVEL = &debug_all_class_hack;

Based on this, all seems well and good, except that due to a problematic build system, libnss_wins.so dynamically resolves this debug_level variable when loaded by libc. In the case of liferea, it uses a global int debug_level somewhere around its source code. I reckon the other applications that are affected by this bug also use something similar.

Given that Natty is really near, and I reckon it's too late to be trying something grand like controlling what symbols do and do not get exported/dynamically resolved during load, I have come up with a patch that renames debug_level to smb_debug_level in source3/include/debug.h. This should solve the issue for the time being.

I'm now test-building the patched package, and will post a follow-up comment.