while ((c = getopt(argc, argv, "o:p")) != -1) {
switch (c) {
case 'o':
- if (parseprop(props, optarg) != 0)
+ if (parseprop(props, optarg) != 0) {
+ nvlist_free(props);
return (1);
+ }
break;
case 'p':
parents = B_TRUE;
}
/* open the source dataset */
- if ((zhp = zfs_open(g_zfs, argv[0], ZFS_TYPE_SNAPSHOT)) == NULL)
+ if ((zhp = zfs_open(g_zfs, argv[0], ZFS_TYPE_SNAPSHOT)) == NULL) {
+ nvlist_free(props);
return (1);
+ }
if (parents && zfs_name_valid(argv[1], ZFS_TYPE_FILESYSTEM |
ZFS_TYPE_VOLUME)) {
* complain.
*/
if (zfs_dataset_exists(g_zfs, argv[1], ZFS_TYPE_FILESYSTEM |
- ZFS_TYPE_VOLUME))
+ ZFS_TYPE_VOLUME)) {
+ zfs_close(zhp);
+ nvlist_free(props);
return (0);
- if (zfs_create_ancestors(g_zfs, argv[1]) != 0)
+ }
+ if (zfs_create_ancestors(g_zfs, argv[1]) != 0) {
+ zfs_close(zhp);
+ nvlist_free(props);
return (1);
+ }
}
/* pass to libzfs */
*at = '\0';
zhp = zfs_open(g_zfs, argv[0],
ZFS_TYPE_FILESYSTEM | ZFS_TYPE_VOLUME);
- if (zhp == NULL)
+ if (zhp == NULL) {
+ nvlist_free(cb.cb_nvl);
return (1);
+ }
cb.cb_snapspec = at + 1;
if (gather_snapshots(zfs_handle_dup(zhp), &cb) != 0 ||
"cannot destroy bookmark");
}
- nvlist_free(cb.cb_nvl);
+ nvlist_free(nvl);
return (err);
} else {
while ((c = getopt(argc, argv, "ro:")) != -1) {
switch (c) {
case 'o':
- if (parseprop(props, optarg) != 0)
+ if (parseprop(props, optarg) != 0) {
+ nvlist_free(sd.sd_nvl);
+ nvlist_free(props);
return (1);
+ }
break;
case 'r':
sd.sd_recursive = B_TRUE;
while ((c = getopt(argc, argv, ":o:denuvFsA")) != -1) {
switch (c) {
case 'o':
- if (parseprop(props, optarg) != 0)
+ if (parseprop(props, optarg) != 0) {
+ nvlist_free(props);
return (1);
+ }
break;
case 'd':
flags.isprefix = B_TRUE;
ZFS_TYPE_FILESYSTEM | ZFS_TYPE_VOLUME)) {
zfs_handle_t *zhp = zfs_open(g_zfs,
namebuf, ZFS_TYPE_FILESYSTEM | ZFS_TYPE_VOLUME);
- if (zhp == NULL)
+ if (zhp == NULL) {
+ nvlist_free(props);
return (1);
+ }
err = zfs_destroy(zhp, B_FALSE);
+ zfs_close(zhp);
} else {
zfs_handle_t *zhp = zfs_open(g_zfs,
argv[0], ZFS_TYPE_FILESYSTEM | ZFS_TYPE_VOLUME);
gettext("'%s' does not have any "
"resumable receive state to abort\n"),
argv[0]);
+ nvlist_free(props);
+ zfs_close(zhp);
return (1);
}
err = zfs_destroy(zhp, B_FALSE);
+ zfs_close(zhp);
}
-
+ nvlist_free(props);
return (err != 0);
}
gettext("Error: Backup stream can not be read "
"from a terminal.\n"
"You must redirect standard input.\n"));
+ nvlist_free(props);
return (1);
}
err = zfs_receive(g_zfs, argv[0], props, &flags, STDIN_FILENO, NULL);
+ nvlist_free(props);
return (err != 0);
}
if (zpool_disable_datasets(zhp, force) != 0) {
(void) fprintf(stderr, gettext("could not destroy '%s': "
"could not unmount datasets\n"), zpool_get_name(zhp));
+ zpool_close(zhp);
return (1);
}
if (searchdirs != NULL)
free(searchdirs);
+ nvlist_free(props);
nvlist_free(policy);
return (1);
}
if (envdup != NULL)
free(envdup);
nvlist_free(policy);
+ nvlist_free(pools);
+ nvlist_free(props);
return (1);
}
usage(B_FALSE);
}
- if ((zhp = zpool_open(g_zfs, poolname)) == NULL)
+ if ((zhp = zpool_open(g_zfs, poolname)) == NULL) {
+ nvlist_free(props);
return (1);
+ }
if (zpool_get_config(zhp, NULL) == NULL) {
(void) fprintf(stderr, gettext("pool '%s' is unavailable\n"),
poolname);
zpool_close(zhp);
+ nvlist_free(props);
return (1);
}
argc, argv);
if (nvroot == NULL) {
zpool_close(zhp);
+ nvlist_free(props);
return (1);
}
ret = zpool_vdev_attach(zhp, old_disk, new_disk, nvroot, replacing);
+ nvlist_free(props);
nvlist_free(nvroot);
zpool_close(zhp);
argc -= 2;
argv += 2;
- if ((zhp = zpool_open(g_zfs, srcpool)) == NULL)
+ if ((zhp = zpool_open(g_zfs, srcpool)) == NULL) {
+ nvlist_free(props);
return (1);
+ }
config = split_mirror_vdev(zhp, newpool, props, flags, argc, argv);
if (config == NULL) {
print_vdev_tree(NULL, newpool, config, 0, B_FALSE,
flags.name_flags);
}
- nvlist_free(config);
}
zpool_close(zhp);
- if (ret != 0 || flags.dryrun || !flags.import)
+ if (ret != 0 || flags.dryrun || !flags.import) {
+ nvlist_free(config);
+ nvlist_free(props);
return (ret);
+ }
/*
* The split was successful. Now we need to open the new
* pool and import it.
*/
- if ((zhp = zpool_open_canfail(g_zfs, newpool)) == NULL)
+ if ((zhp = zpool_open_canfail(g_zfs, newpool)) == NULL) {
+ nvlist_free(config);
+ nvlist_free(props);
return (1);
+ }
if (zpool_get_state(zhp) != POOL_STATE_UNAVAIL &&
zpool_enable_datasets(zhp, mntopts, 0) != 0) {
ret = 1;
"different altroot\n"), "zpool import");
}
zpool_close(zhp);
+ nvlist_free(config);
+ nvlist_free(props);
return (ret);
}