[Date Prev][Date Next] [Chronological] [Thread] [Top]

(ITS#4777) translucent overlay breaks if first mod in modlist is a delete



Full_Name: Karsten Kuenne
Version: 2.3.30
OS: Solaris 10
URL: ftp://ftp.openldap.org/incoming/
Submission from: (NULL) (216.223.241.248)


The following loop in translucent.c at around line 297 fails if the first mod in
the modlist is a delete and eventually crashes slapd:

    ....
    Debug(LDAP_DEBUG_TRACE,
        "=> translucent_modify: silently dropping delete: %s\n",
        m->sml_desc->ad_cname.bv_val, 0, 0);
==> for(mm = op->orm_modlist; mm->sml_next != m; mm = mm->sml_next);
    mm->sml_next = m->sml_next;
    m->sml_next = NULL;
    slap_mods_free(m, 1);
    ....

I tried to come up with a fix but so far I always got a "Invalid modification"
because I apparently got something wrong so I worked around it on the client
side for now.