[Pkg-samba-maint] Bug#522907: winbind: Winbind daily crashes, possible fix to bug #483235
Francis Brosnan Blázquez
francis at aspl.es
Tue Apr 7 10:26:02 UTC 2009
Package: winbind
Version: 3.2.5-4
Severity: important
Tags: patch
Using winbind component to retrieve users from an ADS server causes winbind to daily crash.
We have bypassed the problem by restarting the server at night. However, this does not solve
the issue since it is usually required an another restart.
Attached it is the backtrace of the winbind server:
winbindd: error.c:272: ldap_parse_result: Assertion `r != ((void *)0)' failed.
[2009/04/05 02:11:01, 0] lib/fault.c:fault_report(40)
===============================================================
[2009/04/05 02:11:01, 0] lib/fault.c:fault_report(41)
INTERNAL ERROR: Signal 6 in pid 20777 (3.2.5)
Please read the Trouble-Shooting section of the Samba3-HOWTO
[2009/04/05 02:11:01, 0] lib/fault.c:fault_report(43)
From: http://www.samba.org/samba/docs/Samba3-HOWTO.pdf
[2009/04/05 02:11:01, 0] lib/fault.c:fault_report(44)
===============================================================
[2009/04/05 02:11:01, 0] lib/util.c:smb_panic(1663)
PANIC (pid 20777): internal error
[2009/04/05 02:11:01, 0] lib/util.c:log_stack_trace(1767)
BACKTRACE: 25 stack frames:
#0 /usr/sbin/winbindd(log_stack_trace+0x1c) [0x4e1cbd]
#1 /usr/sbin/winbindd(smb_panic+0x5b) [0x4e1dcb]
#2 /usr/sbin/winbindd [0x4d1064]
#3 /lib/libc.so.6 [0x7fd2c5d61f60]
#4 /lib/libc.so.6(gsignal+0x35) [0x7fd2c5d61ed5]
#5 /lib/libc.so.6(abort+0x183) [0x7fd2c5d633f3]
#6 /lib/libc.so.6(__assert_fail+0xe9) [0x7fd2c5d5adc9]
#7 /usr/lib/libldap_r-2.4.so.2 [0x7fd2c66b690d]
#8 /usr/sbin/winbindd [0x5fa099]
#9 /usr/sbin/winbindd(ads_do_search_all_args+0x87) [0x5fa4a9]
#10 /usr/sbin/winbindd [0x5ffdc4]
#11 /usr/sbin/winbindd(ads_do_search_retry+0x13) [0x600808]
#12 /usr/sbin/winbindd(ads_search_retry+0x1e) [0x600851]
#13 /usr/sbin/winbindd [0x478838]
#14 /usr/sbin/winbindd [0x4638ea]
#15 /usr/sbin/winbindd(winbindd_dual_list_users+0x6e) [0x47eb4b]
#16 /usr/sbin/winbindd [0x47be1f]
#17 /usr/sbin/winbindd [0x47bfcd]
#18 /usr/sbin/winbindd(async_request+0x18a) [0x47d133]
#19 /usr/sbin/winbindd(async_domain_request+0x49) [0x47d27d]
#20 /usr/sbin/winbindd [0x45b018]
#21 /usr/sbin/winbindd(rescan_trusted_domains+0x46) [0x45b358]
#22 /usr/sbin/winbindd(main+0xc43) [0x452595]
#23 /lib/libc.so.6(__libc_start_main+0xe6) [0x7fd2c5d4e1a6]
#24 /usr/sbin/winbindd [0x4504f9]
After looking in bugs.debian.org seems another user reported this issue:
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=484235#150
Looking at the sources the problem is located at a call to ldap_search_with_timeout
in samba-3.2.5/source/libads/ldap.c:769
This function returns a NULL reference to result (res) causing the function
ldap_parse_result (samba-3.2.5/source/libads/ldap.c:783) to assert due to
NULL reference because.
The fix is to also check for NULL reference before calling to ldap_parse_result.
Attached patch.
-- System Information:
Debian Release: lenny/sid
APT prefers oldstable
APT policy: (500, 'oldstable'), (500, 'testing'), (500, 'stable')
Architecture: i386 (i686)
Kernel: Linux 2.6.27 (SMP w/2 CPU cores)
Locale: LANG=es_ES.UTF-8, LC_CTYPE=es_ES.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash
-------------- next part --------------
--- ldap.c 2009-04-07 12:20:50.000000000 +0200
+++ ldap-modified.c 2009-04-07 12:20:44.000000000 +0200
@@ -774,7 +774,7 @@
ber_free(cookie_be, 1);
ber_bvfree(cookie_bv);
- if (rc) {
+ if (rc || res == NULL) {
DEBUG(3,("ads_do_paged_search_args: ldap_search_with_timeout(%s) -> %s\n", expr,
ldap_err2string(rc)));
goto done;
More information about the Pkg-samba-maint
mailing list