smbd: Avoid leaking share_entries.tdb records
authorVolker Lendecke <vl@samba.org>
Fri, 29 Nov 2019 20:30:39 +0000 (21:30 +0100)
committerJeremy Allison <jra@samba.org>
Mon, 2 Dec 2019 21:23:35 +0000 (21:23 +0000)
Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
source3/locking/share_mode_lock.c

index defa538b452dc68fe549f3a4613093a1b56457e8..062a2196efe5c996080bb87808f9c73702d98103 100644 (file)
@@ -1923,6 +1923,15 @@ static void share_mode_entry_do_fn(
                state->num_share_modes -= 1;
        }
 
+       if (state->num_share_modes == 0) {
+               state->status = dbwrap_record_delete(rec);
+               if (!NT_STATUS_IS_OK(state->status)) {
+                       DBG_DEBUG("dbwrap_record_delete failed: %s\n",
+                                 nt_errstr(state->status));
+               }
+               return;
+       }
+
        state->status = dbwrap_record_storev(rec, dbufs, num_dbufs, 0);
        if (!NT_STATUS_IS_OK(state->status)) {
                DBG_DEBUG("dbwrap_record_storev failed: %s\n",