diff --git a/src/lib-sieve-tool/sieve-tool.c b/src/lib-sieve-tool/sieve-tool.c index 464aeb5f5a5e6b0a3ccad8e90ed8191b71063952..acb6edbc491ad662fbb74c743213dd8faf5f12e2 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 8708878c6419f24acc3c2afdc05ab84f1305da7e..13f6819ad659c390a9b83aa58be2a9504bab69d0 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 174cff3cd885fe8f751cf7c4e39c14872f48cebe..3d80424e0f991a4b56c335e0fe5535e84d192012 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 d2944fa95347522b2750c5eb6fc8c0dd1bef4113..27e2d462dc3eb7bb4f16e6ad4c347a8be9a07f0b 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; }