From: Howard Chu Date: Thu, 7 Oct 2021 00:42:38 +0000 (+0100) Subject: ITS#9712 back-mdb: better fix X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2995da7e8ddd4dbd41f45c1a4ad587977a50eef1;p=thirdparty%2Fopenldap.git ITS#9712 back-mdb: better fix --- diff --git a/servers/slapd/back-mdb/id2entry.c b/servers/slapd/back-mdb/id2entry.c index 216efa69dc..1f87aad3d0 100644 --- a/servers/slapd/back-mdb/id2entry.c +++ b/servers/slapd/back-mdb/id2entry.c @@ -55,8 +55,6 @@ mdb_id2v_compare( return -1; if (ui > ci) return 1; - if (usrkey->mv_size < curkey->mv_size) - return 0; uv = usrkey->mv_data; cv = curkey->mv_data; return uv[sizeof(ID)/2] - cv[sizeof(ID)/2]; @@ -467,10 +465,13 @@ int mdb_id2entry_delete( MDB_dbi dbi = mdb->mi_id2entry; MDB_val key; MDB_cursor *mvc; + char kbuf[sizeof(ID) + sizeof(unsigned short)]; int rc; - key.mv_data = &e->e_id; - key.mv_size = sizeof(ID); + memcpy( kbuf, &e->e_id, sizeof(ID) ); + memset( kbuf+sizeof(ID), 0, sizeof(unsigned short) ); + key.mv_data = kbuf; + key.mv_size = sizeof(kbuf); /* delete from database */ rc = mdb_del( tid, dbi, &key, NULL );