[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.