git.annexia.org
/
libguestfs.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Coverity: Don't leak error strings.
[libguestfs.git]
/
daemon
/
parted.c
diff --git
a/daemon/parted.c
b/daemon/parted.c
index
89cc0d6
..
23083a1
100644
(file)
--- a/
daemon/parted.c
+++ b/
daemon/parted.c
@@
-295,13
+295,16
@@
test_parted_m_opt (void)
if (r == -1) {
/* Test failed, eg. missing or completely unusable parted binary. */
reply_with_error ("could not run 'parted' command");
if (r == -1) {
/* Test failed, eg. missing or completely unusable parted binary. */
reply_with_error ("could not run 'parted' command");
+ free (err);
return -1;
}
if (err && strstr (err, "invalid option -- m"))
return -1;
}
if (err && strstr (err, "invalid option -- m"))
- return result = 0;
-
- return result = 1;
+ result = 0;
+ else
+ result = 1;
+ free (err);
+ return result;
}
static char *
}
static char *
@@
-378,6
+381,14
@@
do_part_get_parttype (const char *device)
}
free_strings (lines);
}
free_strings (lines);
+
+ /* If "loop" return an error (RHBZ#634246). */
+ if (STREQ (r, "loop")) {
+ free (r);
+ reply_with_error ("not a partitioned device");
+ return NULL;
+ }
+
return r;
}
else {
return r;
}
else {
@@
-406,6
+417,13
@@
do_part_get_parttype (const char *device)
return NULL;
}
return NULL;
}
+ /* If "loop" return an error (RHBZ#634246). */
+ if (STREQ (p, "loop")) {
+ free (p);
+ reply_with_error ("not a partitioned device");
+ return NULL;
+ }
+
return p; /* caller frees */
}
}
return p; /* caller frees */
}
}