]> granicus.if.org Git - zfs/commitdiff
Fix coverity defects: CID 147551, 147552
authorcao <cao.xuewen@zte.com.cn>
Thu, 20 Oct 2016 18:49:50 +0000 (02:49 +0800)
committerBrian Behlendorf <behlendorf1@llnl.gov>
Thu, 20 Oct 2016 18:49:50 +0000 (11:49 -0700)
CID 147551: Type:dereference null return value
CID 147552: Type:dereference null return value

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

lib/libzfs/libzfs_dataset.c
module/zfs/zfs_ioctl.c

index 7d8179d1f92f870f0d34f98a7e8ce9db8258e55c..e0f84af507112fb0686a6091a4a5130037e10ef2 100644 (file)
@@ -3663,6 +3663,8 @@ zfs_snapshot_nvl(libzfs_handle_t *hdl, nvlist_t *snaps, nvlist_t *props)
        char errbuf[1024];
        nvpair_t *elem;
        nvlist_t *errors;
+       zpool_handle_t *zpool_hdl;
+       char pool[ZFS_MAX_DATASET_NAME_LEN];
 
        (void) snprintf(errbuf, sizeof (errbuf), dgettext(TEXT_DOMAIN,
            "cannot create snapshots "));
@@ -3685,11 +3687,12 @@ zfs_snapshot_nvl(libzfs_handle_t *hdl, nvlist_t *snaps, nvlist_t *props)
         * get pool handle for prop validation. assumes all snaps are in the
         * same pool, as does lzc_snapshot (below).
         */
-       char pool[ZFS_MAX_DATASET_NAME_LEN];
        elem = nvlist_next_nvpair(snaps, NULL);
        (void) strlcpy(pool, nvpair_name(elem), sizeof (pool));
        pool[strcspn(pool, "/@")] = '\0';
-       zpool_handle_t *zpool_hdl = zpool_open(hdl, pool);
+       zpool_hdl = zpool_open(hdl, pool);
+       if (zpool_hdl == NULL)
+               return (-1);
 
        if (props != NULL &&
            (props = zfs_valid_proplist(hdl, ZFS_TYPE_SNAPSHOT,
index 549a8311690f53a22a61cc1c283e933271d1bfca..e3166a40e979ac40c759262fd0ba352d796bd519 100644 (file)
@@ -2773,6 +2773,10 @@ zfs_ioc_inherit_prop(zfs_cmd_t *zc)
                }
 
                pair = nvlist_next_nvpair(dummy, NULL);
+               if (pair == NULL) {
+                       nvlist_free(dummy);
+                       return (SET_ERROR(EINVAL));
+               }
                err = zfs_prop_set_special(zc->zc_name, source, pair);
                nvlist_free(dummy);
                if (err != -1)