[lvm-devel] master - fix: some issues reported by coverity
Peter Rajnoha
prajnoha at fedoraproject.org
Thu Aug 15 10:24:56 UTC 2013
Gitweb: http://git.fedorahosted.org/git/?p=lvm2.git;a=commitdiff;h=0563bd0037610397c5838d0172fd1c913c62c187
Commit: 0563bd0037610397c5838d0172fd1c913c62c187
Parent: 8cbbe851a80e8d99dc886ce9b44834137731d8ce
Author: Peter Rajnoha <prajnoha at redhat.com>
AuthorDate: Thu Aug 15 12:23:49 2013 +0200
Committer: Peter Rajnoha <prajnoha at redhat.com>
CommitterDate: Thu Aug 15 12:23:49 2013 +0200
fix: some issues reported by coverity
- null_fd resource leak on error path in _reopen_fd_null fn
- dead code in verify_message in clvmd code
- dead code in _init_filter_components in toolcontext code
- null dereference in dm_prepare_selinux_context on error path if
setfscreatecon fails while resetting SELinux context
---
daemons/clvmd/clvmd.c | 5 -----
lib/commands/toolcontext.c | 4 ----
lib/misc/lvm-exec.c | 9 ++++++---
libdm/libdm-common.c | 2 +-
4 files changed, 7 insertions(+), 13 deletions(-)
diff --git a/daemons/clvmd/clvmd.c b/daemons/clvmd/clvmd.c
index eaa75ca..a52b39d 100644
--- a/daemons/clvmd/clvmd.c
+++ b/daemons/clvmd/clvmd.c
@@ -1133,11 +1133,6 @@ static int verify_message(char *buf, int len)
return -1;
}
- if (h->clientid < 0) {
- log_error("verify_message bad clientid %x", h->clientid);
- return -1;
- }
-
if (h->arglen > max_cluster_message) {
log_error("verify_message bad arglen %x max %d", h->arglen, max_cluster_message);
return -1;
diff --git a/lib/commands/toolcontext.c b/lib/commands/toolcontext.c
index 65371b1..702a2d8 100644
--- a/lib/commands/toolcontext.c
+++ b/lib/commands/toolcontext.c
@@ -879,10 +879,6 @@ static struct dev_filter *_init_filter_components(struct cmd_context *cmd)
nr_filt++;
}
- /* Only build a composite filter if we really need it. */
- if (nr_filt == 1)
- return filters[0];
-
if (!(composite = composite_filter_create(nr_filt, filters)))
goto_bad;
diff --git a/lib/misc/lvm-exec.c b/lib/misc/lvm-exec.c
index 4cecfa3..01704ad 100644
--- a/lib/misc/lvm-exec.c
+++ b/lib/misc/lvm-exec.c
@@ -111,6 +111,7 @@ int exec_cmd(struct cmd_context *cmd, const char *const argv[],
static int _reopen_fd_to_null(int fd)
{
int null_fd;
+ int r = 0;
if ((null_fd = open("/dev/null", O_RDWR)) == -1) {
log_sys_error("open", "/dev/null");
@@ -119,20 +120,22 @@ static int _reopen_fd_to_null(int fd)
if (close(fd)) {
log_sys_error("close", "");
- return 0;
+ goto out;
}
if (dup2(null_fd, fd) == -1) {
log_sys_error("dup2", "");
- return 0;
+ goto out;
}
+ r = 1;
+out:
if (close(null_fd)) {
log_sys_error("dup2", "");
return 0;
}
- return 1;
+ return r;
}
FILE *pipe_open(struct cmd_context *cmd, const char *const argv[],
diff --git a/libdm/libdm-common.c b/libdm/libdm-common.c
index 2e068dc..4f398f1 100644
--- a/libdm/libdm-common.c
+++ b/libdm/libdm-common.c
@@ -880,7 +880,7 @@ int dm_prepare_selinux_context(const char *path, mode_t mode)
log_debug_activation("Resetting SELinux context to default value.");
if (setfscreatecon(scontext) < 0) {
- log_sys_error("setfscreatecon", path);
+ log_sys_error("setfscreatecon", path ? : "SELinux context reset");
freecon(scontext);
return 0;
}
More information about the lvm-devel
mailing list