diff options
author | luozhengzheng <[email protected]> | 2016-10-05 09:15:57 +0800 |
---|---|---|
committer | Brian Behlendorf <[email protected]> | 2016-10-04 18:15:57 -0700 |
commit | e2c292bbfc9f1133c3faa46ac88f794b64da7ce2 (patch) | |
tree | b29fec24270e4ddbde174590bdcfe930ae84e00d | |
parent | 5cc78dc81232bc474d25ccfcacb42d80d83c5310 (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.c | 13 | ||||
-rwxr-xr-x | lib/libzpool/kernel.c | 6 | ||||
-rw-r--r-- | module/icp/io/aes.c | 2 |
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) |