The local structure mech in servers/slapd/bind.c is declared in do_bind as
struct berval mech = BER_BVNULL;
at about line 44.
Further in do_bind, around line 201, mech is assigned to op->orb_mech.
As a newbie to slapd, I'm concerned about this assignment.
Later, slapd cores in an_find and I see that op->orb_mech.bv_len shares the same
address as op->o_request.oq_search.rs_attrs:
Program received signal SIGSEGV, Segmentation fault.
an_find (a=0x6, s=0x814322c) at ad.c:874
874 for ( ; a->an_name.bv_val; a++ ) {
(gdb) up
#1 0x0807f865 in slap_attr_flags (an=0x6) at result.c:1659
1659 flags |= an_find( an, slap_bv_all_operational_attrs )
(gdb) up
#2 0x08080a54 in slap_send_search_entry (op=0x81e74e0, rs=0xbfffa368) at
result.c:821
821 rs->sr_attr_flags = slap_attr_flags( rs->sr_attrs );
(gdb) print &op->o_request.oq_bind.rb_mech
$97 = (struct berval *) 0x81e751c
(gdb) print &op->o_request.oq_bind.rb_mech.bv_len
$98 = (ber_len_t *) 0x81e751c
(gdb) print &op->o_request.oq_search.rs_attrs
$99 = (AttributeName **) 0x81e751c
I am using back-shell and slapd cores when my bind shell script outputs blank
lines between data lines. If I remove the blank lines slapd doesn't core. But
then it dumps the whole input and complains "expected RESULT" which I know isn't
right.
Thanks,
Grafton