From d60ef7192ad95ec2ec1aef436742f56e6c750b89 Mon Sep 17 00:00:00 2001 From: Werner Koch Date: Sat, 25 Jun 2016 16:59:16 +0200 Subject: Fix minor memory leaks * src/assuan-pipe-connect.c (socketpair_connect): Always free CHILD_FDS. * src/assuan-uds.c (uds_sendfd): Clear CONTROL_U to silence Valgrind. * tests/fdpassing.c (main): Free FNAME. * src/assuan-handler.c (dispatch_command): Remove dead assignment. Signed-off-by: Werner Koch --- tests/fdpassing.c | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) (limited to 'tests/fdpassing.c') diff --git a/tests/fdpassing.c b/tests/fdpassing.c index fee5ba0..1156ad7 100644 --- a/tests/fdpassing.c +++ b/tests/fdpassing.c @@ -59,10 +59,10 @@ cmd_echo (assuan_context_t ctx, char *line) nbytes = 0; while ( (c=getc (fp)) != -1) { - putc (c, stdout); + putc (c, stdout); nbytes++; } - fflush (stdout); + fflush (stdout); log_info ("done printing %d bytes to stdout\n", nbytes); fclose (fp); @@ -118,7 +118,7 @@ server (void) assuan_set_log_stream (ctx, stderr); - for (;;) + for (;;) { rc = assuan_accept (ctx); if (rc) @@ -127,7 +127,7 @@ server (void) log_error ("assuan_accept failed: %s\n", gpg_strerror (rc)); break; } - + log_info ("client connected. Client's pid is %ld\n", (long)assuan_get_pid (ctx)); @@ -135,7 +135,7 @@ server (void) if (rc) log_error ("assuan_process failed: %s\n", gpg_strerror (rc)); } - + assuan_release (ctx); } @@ -169,7 +169,7 @@ client (assuan_context_t ctx, const char *fname) strerror (errno)); return -1; } - + rc = assuan_sendfd (ctx, fileno (fp)); if (rc) { @@ -204,12 +204,12 @@ client (assuan_context_t ctx, const char *fname) -/* - +/* + M A I N */ -int +int main (int argc, char **argv) { int last_argc = -1; @@ -294,17 +294,18 @@ main (int argc, char **argv) if (err) { log_error ("assuan_pipe_connect failed: %s\n", gpg_strerror (err)); - return 1; + assuan_release (ctx); + errorcount++; } - - if (!with_exec && loc[0] == 's') + else if (!with_exec && loc[0] == 's') { server (); + assuan_release (ctx); log_info ("server finished\n"); } else { - if (client (ctx, fname)) + if (client (ctx, fname)) { log_info ("waiting for server to terminate...\n"); assuan_release (ctx); @@ -313,6 +314,7 @@ main (int argc, char **argv) } } + xfree (fname); return errorcount ? 1 : 0; } -- cgit v1.2.3