Bug#895450: slapd: segfault in back_mdb

wferi at niif.hu wferi at niif.hu
Fri Dec 20 09:54:20 GMT 2019


Ryan Tandy <ryan at nardis.ca> writes:

> With your coredump, could you dig a little further into the two
> "sml_mod" structures and show their sm_desc/sm_values/sm_nvalues?

Sure:

(gdb) p *modlist->sml_mod.sm_desc
$8 = {ad_next = 0x0, ad_type = 0x5652a198da20, ad_cname = {bv_len = 3, bv_val = 0x5652a198d900 "uid"}, ad_tags = {bv_len = 0, bv_val = 0x0}, ad_flags = 0, 
  ad_index = 47}
(gdb) p *modlist->sml_mod.sm_values
$9 = {bv_len = 12, bv_val = 0x7ff46c11d940 "jeszenszkyan"}
(gdb) p *modlist->sml_mod.sm_nvalues
$10 = {bv_len = 12, bv_val = 0x7ff46c11d990 "jeszenszkyan"}

and

(gdb) p *modlist->sml_next->sml_mod.sm_desc
$11 = {ad_next = 0x0, ad_type = 0x5652a198da20, ad_cname = {bv_len = 3, bv_val = 0x5652a198d900 "uid"}, ad_tags = {bv_len = 0, bv_val = 0x0}, 
  ad_flags = 0, ad_index = 47}
(gdb) p *modlist->sml_next->sml_mod.sm_values
$12 = {bv_len = 11, bv_val = 0x7ff46c11d860 "jeszenszkya"}
(gdb) p *modlist->sml_next->sml_mod.sm_nvalues
$13 = {bv_len = 11, bv_val = 0x7ff46c11d8b0 "jeszenszkya"}


> (For the "sm_op" values, 1 is LDAP_MOD_DELETE and 4096 is
> SLAP_MOD_SOFTADD.)

Makes sense, I guess...

> Also, if the frame is still valid, the contents of "dni" in
> syncrepl_entry (frame #4) would be useful too.

(gdb) up
#4  0x00005652a06c29df in syncrepl_entry (syncCSN=0x7ff46c115400, syncUUID=0x7ff47a6ca070, syncstate=<optimized out>, modlist=0x7ff47a6c9d30, 
    entry=0x5652a19a8f38, op=0x7ff47a6ca760, si=0x5652a1a39600) at ../../../../servers/slapd/syncrepl.c:3273
3273				rc = op->o_bd->be_modrdn( op, &rs_modify );
(gdb) p dni
$14 = {new_entry = 0x5652a19a8f38, dn = {bv_len = 45, bv_val = 0x7ff46c000ff0 "uid=jeszenszkyan,ou=users,o=niifi,o=niif,c=hu"}, ndn = {bv_len = 45, 
    bv_val = 0x7ff46c001028 "uid=jeszenszkyan,ou=users,o=niifi,o=niif,c=hu"}, nnewSup = {bv_len = 0, bv_val = 0x0}, renamed = 1, delOldRDN = 1, 
  modlist = 0x7ff47a6c9d30, mods = 0x0, oldNcount = 1, oldDesc = 0x5652a198dc00, newDesc = 0x5652a198dc00}
(gdb) p *dni.new_entry
$16 = {e_id = 0, e_name = {bv_len = 44, bv_val = 0x7ff46c115430 "uid=jeszenszkya,ou=users,o=niifi,o=niif,c=hu"}, e_nname = {bv_len = 44, 
    bv_val = 0x7ff46c1191c0 "uid=jeszenszkya,ou=users,o=niifi,o=niif,c=hu"}, e_attrs = 0x5652a19bed90, e_ocflags = 0, e_bv = {bv_len = 0, bv_val = 0x0}, 
  e_private = 0x0}

(gdb) p dni.modlist->sml_mod
$18 = {sm_desc = 0x5652a198d870, sm_values = 0x7ff46c119200, sm_nvalues = 0x7ff46c8bd960, sm_numvals = 1, sm_op = 2, sm_flags = 0, sm_type = {bv_len = 2, 
    bv_val = 0x7ff46c114aed "cn"}}
(gdb) p dni.modlist->sml_mod.sm_desc
$19 = (AttributeDescription *) 0x5652a198d870
(gdb) p *dni.modlist->sml_mod.sm_desc
$20 = {ad_next = 0x5652a1bfcf80, ad_type = 0x5652a198d650, ad_cname = {bv_len = 2, bv_val = 0x5652a198d590 "cn"}, ad_tags = {bv_len = 0, bv_val = 0x0}, 
  ad_flags = 0, ad_index = 46}
(gdb) p *dni.modlist->sml_mod.sm_values
$21 = {bv_len = 16, bv_val = 0x7ff46c10d5c0 "Jeszenszky Andor"}
(gdb) p *dni.modlist->sml_mod.sm_nvalues
$22 = {bv_len = 16, bv_val = 0x7ff46c8bd990 "jeszenszky andor"}
[...]
(gdb) p dni.modlist->sml_next->sml_next->sml_next->sml_next->sml_next->sml_next->sml_next->sml_next
$32 = (Modifications *) 0x0

(gdb) p *dni.oldDesc
$34 = {ad_next = 0x0, ad_type = 0x5652a198da20, ad_cname = {bv_len = 3, bv_val = 0x5652a198d900 "uid"}, ad_tags = {bv_len = 0, bv_val = 0x0}, 
  ad_flags = 0, ad_index = 47}

Hope this helps.
-- 
Regards,
Feri



More information about the Pkg-openldap-devel mailing list