]> granicus.if.org Git - zfs/commitdiff
Fix coverity defects
authorcao <cao.xuewen@zte.com.cn>
Wed, 21 Sep 2016 00:45:45 +0000 (08:45 +0800)
committerBrian Behlendorf <behlendorf1@llnl.gov>
Wed, 21 Sep 2016 00:45:45 +0000 (17:45 -0700)
Fix coverity defects:
coverity scan CID:147623, Type: Resource leak.
coverity scan CID:147622, Type: Resource leak.
reason: zpool_open zhp, but not zpool_close zhp. so resource leak.

coverity scan CID:147621, Type: Resource fd leak.
coverity scan CID:147620, Type: Resource fd leak.
reason: do_write do_read open file fd,but exception not close fd.

delete unuse definition DMU_OS_IS_L2COMPRESSIBLE.

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: cao.xuewen <cao.xuewen@zte.com.cn>
Closes #5137

cmd/zinject/translate.c
cmd/zpool/zpool_main.c
include/sys/dmu_objset.h
tests/zfs-tests/tests/functional/ctime/ctime_001_pos.c

index adace72ff845c569233a66b22e114550f9c58e5b..1aef074d3d772c2c54e737394bbf63915c5391dd 100644 (file)
@@ -474,6 +474,7 @@ translate_device(const char *pool, const char *device, err_type_t label_type,
                if (tgt == NULL) {
                        (void) fprintf(stderr, "cannot find device '%s' in "
                            "pool '%s'\n", device, pool);
+                       zpool_close(zhp);
                        return (-1);
                }
 
@@ -515,5 +516,6 @@ translate_device(const char *pool, const char *device, err_type_t label_type,
                record->zi_end = record->zi_start + VDEV_PAD_SIZE - 1;
                break;
        }
+       zpool_close(zhp);
        return (0);
 }
index 59e56bc0e706dd980df105831f288a621e45e8d0..24902cf345d8a9276d778da5013583a1de5e9fb7 100644 (file)
@@ -758,7 +758,7 @@ zpool_do_remove(int argc, char **argv)
 {
        char *poolname;
        int i, ret = 0;
-       zpool_handle_t *zhp;
+       zpool_handle_t *zhp = NULL;
 
        argc--;
        argv++;
@@ -782,6 +782,7 @@ zpool_do_remove(int argc, char **argv)
                if (zpool_vdev_remove(zhp, argv[i]) != 0)
                        ret = 1;
        }
+       zpool_close(zhp);
 
        return (ret);
 }
index 81bb89bfc24066416139bbf290dea8736288d2ce..1674897c2fb46a288f71f485854ade60956b204d 100644 (file)
@@ -138,8 +138,6 @@ struct objset {
        ((os)->os_secondary_cache == ZFS_CACHE_ALL ||           \
        (os)->os_secondary_cache == ZFS_CACHE_METADATA)
 
-#define        DMU_OS_IS_L2COMPRESSIBLE(os)    (zfs_mdcomp_disable == B_FALSE)
-
 /* called from zpl */
 int dmu_objset_hold(const char *name, void *tag, objset_t **osp);
 int dmu_objset_own(const char *name, dmu_objset_type_t type,
index e1b244ee9a5d5c2e8dfe3d447dd23a2fc6a6838b..4052b5e0b6cbc00d119809e4ccc940e400f68ed1 100644 (file)
@@ -110,6 +110,7 @@ do_read(const char *pfile)
        if (read(fd, buf, sizeof (buf)) == -1) {
                (void) fprintf(stderr, "read(%d, buf, %zd) failed with errno "
                    "%d\n", fd, sizeof (buf), errno);
+               (void) close(fd);
                return (1);
        }
        (void) close(fd);
@@ -133,6 +134,7 @@ do_write(const char *pfile)
        if (write(fd, buf, strlen(buf)) == -1) {
                (void) fprintf(stderr, "write(%d, buf, %d) failed with errno "
                    "%d\n", fd, (int)strlen(buf), errno);
+               (void) close(fd);
                return (1);
        }
        (void) close(fd);