[SCM] Samba Shared Repository - branch master updated
Günther Deschner
gd at samba.org
Wed Dec 12 17:02:02 MST 2012
The branch, master has been updated
via 229d934 s4-libnet: Fix setting the group handle and return codes.
via bdc2f4b util: Remove unused fde_stdin in samba_runcmd.
via 74fb61d s3-lib: Don't close the listener twice if we goto failed.
from a44e58a s3: Fix a typo in a debug message
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master
- Log -----------------------------------------------------------------
commit 229d934d2fb653e02b38d242bf01f199434cd1f3
Author: Andreas Schneider <asn at samba.org>
Date: Thu Dec 6 14:45:24 2012 +0100
s4-libnet: Fix setting the group handle and return codes.
Found by Coverity.
Signed-off-by: Andreas Schneider <asn at samba.org>
Reviewed-by: Günther Deschner <gd at samba.org>
Autobuild-User(master): Günther Deschner <gd at samba.org>
Autobuild-Date(master): Thu Dec 13 01:01:14 CET 2012 on sn-devel-104
commit bdc2f4bd91c3eb0ce0fa87d2d21668e064b106b6
Author: Andreas Schneider <asn at samba.org>
Date: Wed Dec 12 19:15:58 2012 +0100
util: Remove unused fde_stdin in samba_runcmd.
Signed-off-by: Andreas Schneider <asn at samba.org>
Reviewed-by: Günther Deschner <gd at samba.org>
commit 74fb61d496348391a324fc69bb7b167597939d5b
Author: Andreas Schneider <asn at samba.org>
Date: Thu Dec 6 11:11:15 2012 +0100
s3-lib: Don't close the listener twice if we goto failed.
Found by Coverity.
Signed-off-by: Andreas Schneider <asn at samba.org>
Reviewed-by: Günther Deschner <gd at samba.org>
-----------------------------------------------------------------------
Summary of changes:
lib/util/util_runcmd.c | 27 +++++----------------------
source3/lib/sock_exec.c | 2 +-
source4/libnet/groupman.c | 13 +++++++++----
3 files changed, 15 insertions(+), 27 deletions(-)
Changeset truncated at 500 lines:
diff --git a/lib/util/util_runcmd.c b/lib/util/util_runcmd.c
index cc274c2..bc5cc10 100644
--- a/lib/util/util_runcmd.c
+++ b/lib/util/util_runcmd.c
@@ -33,7 +33,6 @@
struct samba_runcmd_state {
int stdout_log_level;
int stderr_log_level;
- struct tevent_fd *fde_stdin;
struct tevent_fd *fde_stdout;
struct tevent_fd *fde_stderr;
int fd_stdin, fd_stdout, fd_stderr;
@@ -50,6 +49,10 @@ static int samba_runcmd_state_destructor(struct samba_runcmd_state *state)
waitpid(state->pid, NULL, 0);
state->pid = -1;
}
+
+ if (state->fd_stdin != -1) {
+ close(state->fd_stdin);
+ }
return 0;
}
@@ -85,6 +88,7 @@ struct tevent_req *samba_runcmd_send(TALLOC_CTX *mem_ctx,
state->stdout_log_level = stdout_log_level;
state->stderr_log_level = stderr_log_level;
+ state->fd_stdin = -1;
state->arg0 = talloc_strdup(state, argv0[0]);
if (tevent_req_nomem(state->arg0, req)) {
@@ -149,7 +153,6 @@ struct tevent_req *samba_runcmd_send(TALLOC_CTX *mem_ctx,
if (tevent_req_nomem(state->fde_stdout, req)) {
close(state->fd_stdout);
close(state->fd_stderr);
- close(state->fd_stdin);
return tevent_req_post(req, ev);
}
tevent_fd_set_auto_close(state->fde_stdout);
@@ -161,22 +164,10 @@ struct tevent_req *samba_runcmd_send(TALLOC_CTX *mem_ctx,
req);
if (tevent_req_nomem(state->fde_stdout, req)) {
close(state->fd_stderr);
- close(state->fd_stdin);
return tevent_req_post(req, ev);
}
tevent_fd_set_auto_close(state->fde_stderr);
- state->fde_stdin = tevent_add_fd(ev, state,
- state->fd_stdin,
- 0,
- samba_runcmd_io_handler,
- req);
- if (tevent_req_nomem(state->fde_stdin, req)) {
- close(state->fd_stdin);
- return tevent_req_post(req, ev);
- }
- tevent_fd_set_auto_close(state->fde_stdin);
-
if (!timeval_is_zero(&endtime)) {
tevent_req_set_endtime(req, ev, endtime);
}
@@ -251,14 +242,6 @@ static void samba_runcmd_io_handler(struct tevent_context *ev,
} else if (fde == state->fde_stderr) {
level = state->stderr_log_level;
fd = state->fd_stderr;
- } else if (fde == state->fde_stdin) {
- char c;
- if (read(state->fd_stdin, &c, 1) != 1) {
- /* the child has closed its stdin */
- talloc_free(fde);
- state->fde_stdin = NULL;
- return;
- }
} else {
return;
}
diff --git a/source3/lib/sock_exec.c b/source3/lib/sock_exec.c
index 403b38b..3d2ace9 100644
--- a/source3/lib/sock_exec.c
+++ b/source3/lib/sock_exec.c
@@ -68,11 +68,11 @@ static int socketpair_tcp(int fd[2])
if ((fd[0] = accept(listener, (struct sockaddr *)&sock, &socklen)) == -1) goto failed;
- close(listener);
if (connect_done == 0) {
if (connect(fd[1], (struct sockaddr *)&sock, socklen) != 0
&& errno != EISCONN) goto failed;
}
+ close(listener);
set_blocking(fd[1], 1);
diff --git a/source4/libnet/groupman.c b/source4/libnet/groupman.c
index 97236bd..9771ea5 100644
--- a/source4/libnet/groupman.c
+++ b/source4/libnet/groupman.c
@@ -94,10 +94,12 @@ NTSTATUS libnet_rpc_groupadd_recv(struct composite_context *c, TALLOC_CTX *mem_c
struct groupadd_state *s;
status = composite_wait(c);
- if (NT_STATUS_IS_OK(status)) {
- s = talloc_get_type(c, struct groupadd_state);
+ if (NT_STATUS_IS_OK(status) && io) {
+ s = talloc_get_type(c->private_data, struct groupadd_state);
+ io->out.group_handle = s->group_handle;
}
+ talloc_free(c);
return status;
}
@@ -115,8 +117,11 @@ static void continue_groupadd_created(struct tevent_req *subreq)
if (!composite_is_ok(c)) return;
c->status = s->creategroup.out.result;
- if (!composite_is_ok(c)) return;
-
+ if (!NT_STATUS_IS_OK(c->status)) {
+ composite_error(c, c->status);
+ return;
+ }
+
composite_done(c);
}
--
Samba Shared Repository
More information about the samba-cvs
mailing list