aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorluozhengzheng <[email protected]>2016-10-05 09:15:57 +0800
committerBrian Behlendorf <[email protected]>2016-10-04 18:15:57 -0700
commite2c292bbfc9f1133c3faa46ac88f794b64da7ce2 (patch)
treeb29fec24270e4ddbde174590bdcfe930ae84e00d
parent5cc78dc81232bc474d25ccfcacb42d80d83c5310 (diff)
Fix coverity defects: CID 150953, 147603, 147610
coverity scan CID:150953,type: uninitialized scalar variable coverity scan CID:147603,type: Resource leak coverity scan CID:147610,type: Resource leak Reviewed-by: Brian Behlendorf <[email protected]> Signed-off-by: luozhengzheng <[email protected]> Closes #5209
-rw-r--r--cmd/zfs/zfs_main.c13
-rwxr-xr-xlib/libzpool/kernel.c6
-rw-r--r--module/icp/io/aes.c2
3 files changed, 16 insertions, 5 deletions
diff --git a/cmd/zfs/zfs_main.c b/cmd/zfs/zfs_main.c
index bf9a79248..fedc1a04d 100644
--- a/cmd/zfs/zfs_main.c
+++ b/cmd/zfs/zfs_main.c
@@ -6120,8 +6120,11 @@ share_mount(int op, int argc, char **argv)
start_progress_timer();
get_all_datasets(&dslist, &count, verbose);
- if (count == 0)
+ if (count == 0) {
+ if (options != NULL)
+ free(options);
return (0);
+ }
qsort(dslist, count, sizeof (void *), libzfs_dataset_cmp);
@@ -6153,8 +6156,11 @@ share_mount(int op, int argc, char **argv)
*/
/* Reopen MNTTAB to prevent reading stale data from open file */
- if (freopen(MNTTAB, "r", mnttab_file) == NULL)
+ if (freopen(MNTTAB, "r", mnttab_file) == NULL) {
+ if (options != NULL)
+ free(options);
return (ENOENT);
+ }
while (getmntent(mnttab_file, &entry) == 0) {
if (strcmp(entry.mnt_fstype, MNTTYPE_ZFS) != 0 ||
@@ -6184,6 +6190,9 @@ share_mount(int op, int argc, char **argv)
}
}
+ if (options != NULL)
+ free(options);
+
return (ret);
}
diff --git a/lib/libzpool/kernel.c b/lib/libzpool/kernel.c
index 60dda39a8..579626220 100755
--- a/lib/libzpool/kernel.c
+++ b/lib/libzpool/kernel.c
@@ -599,8 +599,8 @@ cv_broadcast(kcondvar_t *cv)
int
vn_open(char *path, int x1, int flags, int mode, vnode_t **vpp, int x2, int x3)
{
- int fd;
- int dump_fd;
+ int fd = -1;
+ int dump_fd = -1;
vnode_t *vp;
int old_umask = 0;
char *realpath;
@@ -698,6 +698,8 @@ vn_open(char *path, int x1, int flags, int mode, vnode_t **vpp, int x2, int x3)
if (fstat64_blk(fd, &st) == -1) {
err = errno;
close(fd);
+ if (dump_fd != -1)
+ close(dump_fd);
return (err);
}
diff --git a/module/icp/io/aes.c b/module/icp/io/aes.c
index ada697eb6..7fd66be3e 100644
--- a/module/icp/io/aes.c
+++ b/module/icp/io/aes.c
@@ -1282,7 +1282,7 @@ aes_common_init_ctx(aes_ctx_t *aes_ctx, crypto_spi_ctx_template_t *template,
{
int rv = CRYPTO_SUCCESS;
void *keysched;
- size_t size;
+ size_t size = 0;
if (template == NULL) {
if ((keysched = aes_alloc_keysched(&size, kmflag)) == NULL)