]> granicus.if.org Git - zfs/commitdiff
Fix coverity defects: CID 147563, 147560
authorcao <cao.xuewen@zte.com.cn>
Fri, 30 Sep 2016 22:56:17 +0000 (06:56 +0800)
committerBrian Behlendorf <behlendorf1@llnl.gov>
Fri, 30 Sep 2016 22:56:17 +0000 (15:56 -0700)
coverity scan CID:147563, Type:dereference null return value
coverity scan CID:147560, Type:dereference null return value

Reviewed-by: Richard Laager <rlaager@wiktel.com>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: cao.xuewen <cao.xuewen@zte.com.cn>
Closes #5168

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

index 84fe71734f7c4ba8d4740203c21763b00010d974..6b09cb6dab7c8738886c163fdd35eec0e6a5c851 100755 (executable)
@@ -2262,6 +2262,11 @@ zfs_get_clones_nvl(zfs_handle_t *zhp)
                        (void) strsep(&cp, "/@");
                        root = zfs_open(zhp->zfs_hdl, pool,
                            ZFS_TYPE_FILESYSTEM);
+                       if (root == NULL) {
+                               nvlist_free(nv);
+                               nvlist_free(value);
+                               return (NULL);
+                       }
 
                        (void) get_clones_cb(root, &gca);
                }
index d4a3a9e41a7dd35b1c6854937c875a611d9b6bd1..3026d873355bd2561e185afd1dac2a22a6be3a20 100644 (file)
@@ -2354,6 +2354,10 @@ dsl_dataset_promote_check(void *arg, dmu_tx_t *tx)
        }
 
        snap = list_head(&ddpa->shared_snaps);
+       if (snap == NULL) {
+               err = SET_ERROR(ENOENT);
+               goto out;
+       }
        origin_ds = snap->ds;
 
        /* compute origin's new unique space */
@@ -2462,6 +2466,10 @@ dsl_dataset_promote_check(void *arg, dmu_tx_t *tx)
                 * iterate over all bps.
                 */
                snap = list_head(&ddpa->origin_snaps);
+               if (snap == NULL) {
+                       err = SET_ERROR(ENOENT);
+                       goto out;
+               }
                err = snaplist_space(&ddpa->shared_snaps,
                    snap->ds->ds_dir->dd_origin_txg, &ddpa->cloneusedsnap);
                if (err != 0)