[dm-devel] [PATCH 02/12] libmultipath(coverity): cleanup dup usage in execute_program()
Martin Wilck
mwilck at suse.com
Tue Jan 8 22:53:59 UTC 2019
coverity complained about resource leakage here.
Signed-off-by: Martin Wilck <mwilck at suse.com>
---
libmultipath/callout.c | 13 +++++++------
1 file changed, 7 insertions(+), 6 deletions(-)
diff --git a/libmultipath/callout.c b/libmultipath/callout.c
index d5ca27b..dac088c 100644
--- a/libmultipath/callout.c
+++ b/libmultipath/callout.c
@@ -68,19 +68,20 @@ int execute_program(char *path, char *value, int len)
switch(pid) {
case 0:
/* child */
- close(STDOUT_FILENO);
/* dup write side of pipe to STDOUT */
- if (dup(fds[1]) < 0)
+ if (dup2(fds[1], STDOUT_FILENO) < 0) {
+ condlog(1, "failed to dup2 stdout: %m");
return -1;
+ }
+ close(fds[0]);
+ close(fds[1]);
/* Ignore writes to stderr */
null_fd = open("/dev/null", O_WRONLY);
if (null_fd > 0) {
- int err_fd __attribute__ ((unused));
-
- close(STDERR_FILENO);
- err_fd = dup(null_fd);
+ if (dup2(null_fd, STDERR_FILENO) < 0)
+ condlog(1, "failed to dup2 stderr: %m");
close(null_fd);
}
--
2.19.2
More information about the dm-devel
mailing list