[Date Prev][Date Next]
[Chronological]
[Thread]
[Top]
Re: oid="1.2.826.0.1.334810.2.3" (noncritical) failed (ITS#2219)
I didn't diagnose the exact problem, but the following fix works:
diff -u servers/slapd/controls.c.orig servers/slapd/controls.c
--- servers/slapd/controls.c.orig 2002-12-03 14:06:43.000000000 +0400
+++ servers/slapd/controls.c 2002-11-28 12:00:05.000000000 +0400
@@ -564,6 +564,11 @@
return LDAP_PROTOCOL_ERROR;
}
+ if ( ctrl->ldctl_value.bv_len == 0 ) {
+ *text = "values return filter control value is empty";
+ return LDAP_PROTOCOL_ERROR;
+ }
+
ber = ber_init( &(ctrl->ldctl_value) );
if (ber == NULL) {
*text = "internal error";
I don't know how to provide not "worthless bt". When I build slapd without threads and set breakpoint at function "parseValuesReturnFilter", I get :
Breakpoint 1, parseValuesReturnFilter (conn=0x813bb60, op=0x818f8b0, ctrl=0x0, text=0x818f4e8)
at controls.c:556
556 {
(gdb) bt
#0 parseValuesReturnFilter (conn=0x813bb60, op=0x818f8b0, ctrl=0x0, text=0x818f4e8)
at controls.c:556
#1 0x0807c5dc in get_ctrls (conn=0x8056da4, op=0x402dacb8, sendres=135862584) at controls.c:340
(gdb) step
0x0807cd68 in find_ctrl ()
(gdb) bt
#0 0x0807cd68 in find_ctrl ()
#1 0x0807ca18 in parseValuesReturnFilter (conn=0x813bb60, op=0x81919c0, ctrl=0x8191938,
text=0x818f4e8) at controls.c:556
(gdb) step
Single stepping until exit from function find_ctrl,
which has no line number information.
Program received signal SIGABRT, Aborted.
0x42029341 in kill () from /lib/libc.so.6
(gdb) bt
#0 0x42029341 in kill () from /lib/libc.so.6
#1 0x42029138 in raise () from /lib/libc.so.6
#2 0x4202a7dc in abort () from /lib/libc.so.6
#3 0x42022144 in __assert_fail () from /lib/libc.so.6
Please let me know how to provide a better back trace.