]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
s3/libsmb: Avoid potential smbpanic calling parse_user_quota_list.
authorNoel Power <noel.power@suse.com>
Tue, 28 Feb 2017 15:04:16 +0000 (15:04 +0000)
committerKarolin Seeger <kseeger@samba.org>
Mon, 13 Aug 2018 10:56:37 +0000 (12:56 +0200)
Calling parse_user_quota_list with a NULL buffer can cause a panic, while
this shouldn't happen, I managed to trigger this with an early implementation
of SMB2 quota support in smbd which didn't pass back NT_STATUS_NO_MORE_ENTRIES
when handling a SMB2_0_INFO_QUOTA GETINFO message.
OTHOH the Windows client handled the same situation gracefully.

BUG: https://bugzilla.samba.org/show_bug.cgi?id=13553

Signed-off-by: Noel Power <noel.power@suse.com>
Reviewed-by: Jeremy Allison <jra@samba.org>
source3/libsmb/cli_smb2_fnum.c

index c397b29b3818d08450a7a0a5229f2cda740ac4da..089d904f007604adf36824b957375f79111091a3 100644 (file)
@@ -3045,6 +3045,14 @@ NTSTATUS cli_smb2_list_user_quota_step(struct cli_state *cli,
                                    ph->fid_persistent, ph->fid_volatile, frame,
                                    &outbuf);
 
+       /*
+        * safeguard against panic from calling parse_user_quota_list with
+        * NULL buffer
+        */
+       if (NT_STATUS_IS_OK(status) && outbuf.length == 0) {
+               status = NT_STATUS_NO_MORE_ENTRIES;
+       }
+
        if (!NT_STATUS_IS_OK(status)) {
                goto cleanup;
        }