diff options
author | Volker Lendecke <vlendec@samba.org> | 2006-03-09 20:42:01 +0000 |
---|---|---|
committer | Volker Lendecke <vlendec@samba.org> | 2006-03-09 20:42:01 +0000 |
commit | c121b06c74e9691bc9159de3bbca9e7e1582fbd9 (patch) | |
tree | 91ea2953c7dcf3c11d1cc69c8c3c77540bc0b342 | |
parent | 17f018cfda06465b1caabb259dea43b142cba69b (diff) | |
download | samba-c121b06c74e9691bc9159de3bbca9e7e1582fbd9.tar.gz samba-c121b06c74e9691bc9159de3bbca9e7e1582fbd9.tar.xz samba-c121b06c74e9691bc9159de3bbca9e7e1582fbd9.zip |
r14098: Fix Coverity # 112
-rw-r--r-- | source/utils/net.c | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/source/utils/net.c b/source/utils/net.c index 99a289bcd43..1389885ba17 100644 --- a/source/utils/net.c +++ b/source/utils/net.c @@ -249,12 +249,21 @@ NTSTATUS connect_dst_pipe(struct cli_state **cli_dst, struct rpc_pipe_client **p struct cli_state *cli_tmp = NULL; struct rpc_pipe_client *pipe_hnd = NULL; - if (opt_destination) - server_name = SMB_STRDUP(opt_destination); + if (server_name == NULL) { + return NT_STATUS_NO_MEMORY; + } + + if (opt_destination) { + SAFE_FREE(server_name); + if ((server_name = SMB_STRDUP(opt_destination)) == NULL) { + return NT_STATUS_NO_MEMORY; + } + } /* make a connection to a named pipe */ nt_status = connect_to_ipc(&cli_tmp, NULL, server_name); if (!NT_STATUS_IS_OK(nt_status)) { + SAFE_FREE(server_name); return nt_status; } @@ -262,11 +271,13 @@ NTSTATUS connect_dst_pipe(struct cli_state **cli_dst, struct rpc_pipe_client **p if (!pipe_hnd) { DEBUG(0, ("couldn't not initialize pipe\n")); cli_shutdown(cli_tmp); + SAFE_FREE(server_name); return nt_status; } *cli_dst = cli_tmp; *pp_pipe_hnd = pipe_hnd; + SAFE_FREE(server_name); return nt_status; } |