s3:locking: initialize lease pointer in share_mode_traverse_fn()
authorRalph Boehme <slow@samba.org>
Mon, 12 Oct 2015 10:28:04 +0000 (12:28 +0200)
committerKarolin Seeger <kseeger@samba.org>
Wed, 21 Oct 2015 07:17:19 +0000 (09:17 +0200)
Initialize lease pointer to point to the share_mode_data leases array
entry at index lease_idx.

This fixes a bug in smbstatus where the lease info is not printed.

Bug: https://bugzilla.samba.org/show_bug.cgi?id=11549

Signed-off-by: Ralph Boehme <slow@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
Autobuild-User(master): Jeremy Allison <jra@samba.org>
Autobuild-Date(master): Tue Oct 13 01:14:09 CEST 2015 on sn-devel-104

(cherry picked from commit 0ef9c67b56a0b493ed06f9a64ac2bc2233041aee)

source3/locking/share_mode_lock.c

index 327ac796980f7a550d048efce0c07823d01794be..26ba0cb79a4e513a96d7595feaea693166cee762 100644 (file)
@@ -493,13 +493,17 @@ static int share_mode_traverse_fn(struct db_record *rec, void *_state)
                DEBUG(1, ("ndr_pull_share_mode_lock failed\n"));
                return 0;
        }
+
+       for (i=0; i<d->num_share_modes; i++) {
+               struct share_mode_entry *entry = &d->share_modes[i];
+               entry->stale = false; /* [skip] in idl */
+               entry->lease = &d->leases[entry->lease_idx];
+       }
+
        if (DEBUGLEVEL > 10) {
                DEBUG(11, ("parse_share_modes:\n"));
                NDR_PRINT_DEBUG(share_mode_data, d);
        }
-       for (i=0; i<d->num_share_modes; i++) {
-               d->share_modes[i].stale = false; /* [skip] in idl */
-       }
 
        ret = state->fn(fid, d, state->private_data);