diff options
author | David Disseldorp <ddiss@samba.org> | 2014-10-06 18:21:18 +0200 |
---|---|---|
committer | Jeremy Allison <jra@samba.org> | 2014-10-06 21:41:22 +0200 |
commit | 8cc41b027769b659d1b1503f0fd33ca7d3c3eb9b (patch) | |
tree | d7059c331c399dcc81669e2f7baeb80a2f8b1260 /source3/smbd/lanman.c | |
parent | 3c854657531ac73ce5e3148e35844e3c8130fe37 (diff) | |
download | samba-8cc41b027769b659d1b1503f0fd33ca7d3c3eb9b.tar.gz samba-8cc41b027769b659d1b1503f0fd33ca7d3c3eb9b.tar.xz samba-8cc41b027769b659d1b1503f0fd33ca7d3c3eb9b.zip |
lanman: don't leak cache_path onto talloc tos
Also check for allocation failures.
Reported-by: Franz Pförtsch <franz.pfoertsch@brose.com>
Signed-off-by: David Disseldorp <ddiss@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
Autobuild-User(master): Jeremy Allison <jra@samba.org>
Autobuild-Date(master): Mon Oct 6 21:41:22 CEST 2014 on sn-devel-104
Diffstat (limited to 'source3/smbd/lanman.c')
-rw-r--r-- | source3/smbd/lanman.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/source3/smbd/lanman.c b/source3/smbd/lanman.c index ac4873decc..641f161f76 100644 --- a/source3/smbd/lanman.c +++ b/source3/smbd/lanman.c @@ -1226,12 +1226,19 @@ static int get_session_info(uint32 servertype, char **lines; bool local_list_only; int i; + char *slist_cache_path = cache_path(SERVER_LIST); + if (slist_cache_path == NULL) { + return 0; + } - lines = file_lines_load(cache_path(SERVER_LIST), NULL, 0, NULL); + lines = file_lines_load(slist_cache_path, NULL, 0, NULL); if (!lines) { - DEBUG(4,("Can't open %s - %s\n",cache_path(SERVER_LIST),strerror(errno))); + DEBUG(4, ("Can't open %s - %s\n", + slist_cache_path, strerror(errno))); + TALLOC_FREE(slist_cache_path); return 0; } + TALLOC_FREE(slist_cache_path); /* request for everything is code for request all servers */ if (servertype == SV_TYPE_ALL) { |