From 62313f891048d91707cf5a5bd068d02c2824d518 Mon Sep 17 00:00:00 2001 From: Stephan Bosch <stephan@rename-it.nl> Date: Tue, 17 Jun 2014 22:13:52 +0200 Subject: [PATCH] Use the new [io]_stream_create_fd_*autoclose() functions wherever possible. Parallel to identical Dovecot change. --- src/lib-sieve-tool/sieve-tool.c | 2 +- src/lib-sieve/sieve-script-file.c | 4 ++-- src/lib-sieve/sieve-script-private.h | 2 -- src/testsuite/testsuite-smtp.c | 2 +- 4 files changed, 4 insertions(+), 6 deletions(-) diff --git a/src/lib-sieve-tool/sieve-tool.c b/src/lib-sieve-tool/sieve-tool.c index 464aeb5f5..acb6edbc4 100644 --- a/src/lib-sieve-tool/sieve-tool.c +++ b/src/lib-sieve-tool/sieve-tool.c @@ -515,7 +515,7 @@ struct ostream *sieve_tool_open_output_stream(const char *filename) i_fatal("failed to open file for writing: %m"); } - outstream = o_stream_create_fd(fd, 0, TRUE); + outstream = o_stream_create_fd_autoclose(&fd, 0); } return outstream; diff --git a/src/lib-sieve/sieve-script-file.c b/src/lib-sieve/sieve-script-file.c index 8708878c6..13f6819ad 100644 --- a/src/lib-sieve/sieve-script-file.c +++ b/src/lib-sieve/sieve-script-file.c @@ -286,14 +286,14 @@ static int sieve_file_script_get_stream *error_r = SIEVE_ERROR_TEMP_FAILURE; result = NULL; } else { - result = i_stream_create_fd(fd, SIEVE_FILE_READ_BLOCK_SIZE, TRUE); + result = i_stream_create_fd_autoclose(&fd, SIEVE_FILE_READ_BLOCK_SIZE); script->st = script->lnk_st = st; } } if ( result == NULL ) { /* Something went wrong, close the fd */ - if ( close(fd) != 0 ) { + if ( fd >= 0 && close(fd) != 0 ) { sieve_sys_error(svinst, "failed to close sieve script: close(fd=%s) failed: %m", script->path); } diff --git a/src/lib-sieve/sieve-script-private.h b/src/lib-sieve/sieve-script-private.h index 174cff3cd..3d80424e0 100644 --- a/src/lib-sieve/sieve-script-private.h +++ b/src/lib-sieve/sieve-script-private.h @@ -89,8 +89,6 @@ struct sieve_file_script { const char *filename; const char *binpath; const char *binprefix; - - int fd; }; extern const struct sieve_script sieve_file_script; diff --git a/src/testsuite/testsuite-smtp.c b/src/testsuite/testsuite-smtp.c index d2944fa95..27e2d462d 100644 --- a/src/testsuite/testsuite-smtp.c +++ b/src/testsuite/testsuite-smtp.c @@ -95,7 +95,7 @@ void *testsuite_smtp_start smtp->msg_file); } - smtp->output = o_stream_create_fd(fd, (size_t)-1, TRUE); + smtp->output = o_stream_create_fd_autoclose(&fd, (size_t)-1); return (void *) smtp; } -- GitLab