From 40588148877350e7a3e92259770bdef44ccab706 Mon Sep 17 00:00:00 2001 From: Uri Simchoni Date: Sun, 18 Sep 2016 11:09:54 +0300 Subject: [PATCH] ntquotas: support "freeing" an empty quota list This avoids dereferencing a null pointer if there's an attempt to free an empty list. BUG: https://bugzilla.samba.org/show_bug.cgi?id=12307 Signed-off-by: Uri Simchoni Reviewed-by: Jeremy Allison (cherry picked from commit dd8a0578d8c9f562a4f13a90f4fe51f66058dd02) --- source3/libsmb/cliquota.c | 3 ++- source3/smbd/ntquotas.c | 3 +-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/source3/libsmb/cliquota.c b/source3/libsmb/cliquota.c index 778fefc..a2c6edd 100644 --- a/source3/libsmb/cliquota.c +++ b/source3/libsmb/cliquota.c @@ -34,8 +34,9 @@ NTSTATUS cli_get_quota_handle(struct cli_state *cli, uint16_t *quota_fnum) void free_ntquota_list(SMB_NTQUOTA_LIST **qt_list) { - if (!qt_list) + if (!qt_list || !*qt_list) { return; + } if ((*qt_list)->mem_ctx) talloc_destroy((*qt_list)->mem_ctx); diff --git a/source3/smbd/ntquotas.c b/source3/smbd/ntquotas.c index 9b2e39a..93f4a2a 100644 --- a/source3/smbd/ntquotas.c +++ b/source3/smbd/ntquotas.c @@ -231,8 +231,7 @@ int vfs_get_user_ntquota_list(files_struct *fsp, SMB_NTQUOTA_LIST **qt_list) static int quota_handle_destructor(SMB_NTQUOTA_HANDLE *handle) { - if (handle->quota_list) - free_ntquota_list(&handle->quota_list); + free_ntquota_list(&handle->quota_list); return 0; } -- 2.5.5