s3:smbd: fix SAFE_FREE() vs. TALLOC_FREE() in list_sessions()
authorStefan Metzmacher <metze@samba.org>
Tue, 28 Nov 2017 07:16:03 +0000 (08:16 +0100)
committerJeremy Allison <jra@samba.org>
Thu, 28 Mar 2019 23:09:33 +0000 (23:09 +0000)
It's very unlikely that sessionid_traverse_read() fails,
but we should not segfault.

Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
source3/smbd/session.c

index 8b4c660930448224c87de2bc75b3a55c74f31ef6..abc799105f00c29170b2f3b4a5b6b3a60ae8d737 100644 (file)
@@ -179,8 +179,8 @@ int list_sessions(TALLOC_CTX *mem_ctx, struct sessionid **session_list)
 
        status = sessionid_traverse_read(gather_sessioninfo, (void *) &sesslist);
        if (!NT_STATUS_IS_OK(status)) {
-               DEBUG(3, ("Session traverse failed\n"));
-               SAFE_FREE(sesslist.sessions);
+               DBG_ERR("Session traverse failed: %s\n", nt_errstr(status));
+               TALLOC_FREE(sesslist.sessions);
                *session_list = NULL;
                return 0;
        }