[Date Prev][Date Next]
[Chronological]
[Thread]
[Top]
Re: oid="1.2.826.0.1.334810.2.3" (noncritical) failed (ITS#2219)
At 10:44 PM 2002-12-05, osinig@mekhanika.ru wrote:
>I didn't diagnose the exact problem, but the following fix works:
This fix is valid (a similar fix was applied previously to HEAD),
it detects a possible protocol error. I've now back-ported the
change to OPENLDAP_REL_ENG_2_1.
Thanks, Kurt
>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.