From 11861911d078ea49ee398a6d45f78623522516b6 Mon Sep 17 00:00:00 2001 From: Jeremy Allison Date: Tue, 16 May 2017 16:12:19 -0700 Subject: [PATCH] s3: smbd: Fix open_files.idl to correctly ignore share_mode_lease *lease in share_mode_entry. This is currently marked 'skip', which means it isn't stored in the db, but printed out in ndr dump. However, this pointer can be invalid if the lease_idx is set to 0xFFFFFFFF (invalid). This is fixed up inside parse_share_modes(), but not until after ndr_pull_share_mode_data() is called. If lease_idx == 0xFFFFFFFF then ndr_print_share_mode_lease() prints an invalid value and crashes. BUG: https://bugzilla.samba.org/show_bug.cgi?id=12793 Signed-off-by: Jeremy Allison Reviewed-by: Alexander Bokovoy Autobuild-User(master): Jeremy Allison Autobuild-Date(master): Thu May 18 03:01:40 CEST 2017 on sn-devel-144 (cherry picked from commit b691f6d32f79ef8427f567612243dd51ea8d5584) --- source3/librpc/idl/open_files.idl | 2 +- source3/locking/share_mode_lock.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/source3/librpc/idl/open_files.idl b/source3/librpc/idl/open_files.idl index 6f74340497b..1f85f245fca 100644 --- a/source3/librpc/idl/open_files.idl +++ b/source3/librpc/idl/open_files.idl @@ -62,7 +62,7 @@ interface open_files * to store this share_mode_entry on disk. */ [skip] boolean8 stale; - [skip] share_mode_lease *lease; + [ignore] share_mode_lease *lease; } share_mode_entry; typedef [public] struct { diff --git a/source3/locking/share_mode_lock.c b/source3/locking/share_mode_lock.c index f738323ef7c..91c53ff1828 100644 --- a/source3/locking/share_mode_lock.c +++ b/source3/locking/share_mode_lock.c @@ -322,8 +322,8 @@ static struct share_mode_data *parse_share_modes(TALLOC_CTX *mem_ctx, } /* - * Initialize the values that are [skip] in the idl. The NDR code does - * not initialize them. + * Initialize the values that are [skip] or [ignore] + * in the idl. The NDR code does not initialize them. */ for (i=0; inum_share_modes; i++) { -- 2.13.0.303.g4ebf302169-goog