aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--cmd/zstream/zstream_token.c6
-rw-r--r--cmd/ztest.c6
-rw-r--r--lib/libzfs/libzfs_dataset.c2
3 files changed, 13 insertions, 1 deletions
diff --git a/cmd/zstream/zstream_token.c b/cmd/zstream/zstream_token.c
index 23cc56dce..795a37263 100644
--- a/cmd/zstream/zstream_token.c
+++ b/cmd/zstream/zstream_token.c
@@ -49,6 +49,7 @@ int
zstream_do_token(int argc, char *argv[])
{
char *resume_token = NULL;
+ libzfs_handle_t *hdl;
if (argc < 2) {
(void) fprintf(stderr, "Need to pass the resume token\n");
@@ -57,7 +58,10 @@ zstream_do_token(int argc, char *argv[])
resume_token = argv[1];
- libzfs_handle_t *hdl = libzfs_init();
+ if ((hdl = libzfs_init()) == NULL) {
+ (void) fprintf(stderr, "%s\n", libzfs_error_init(errno));
+ return (1);
+ }
nvlist_t *resume_nvl =
zfs_send_resume_token_to_nvlist(hdl, resume_token);
diff --git a/cmd/ztest.c b/cmd/ztest.c
index 033bcfd33..e630d3353 100644
--- a/cmd/ztest.c
+++ b/cmd/ztest.c
@@ -6637,6 +6637,8 @@ ztest_global_vars_to_zdb_args(void)
{
char **args = calloc(2*ztest_opts.zo_gvars_count + 1, sizeof (char *));
char **cur = args;
+ if (args == NULL)
+ return (NULL);
for (size_t i = 0; i < ztest_opts.zo_gvars_count; i++) {
*cur++ = (char *)"-o";
*cur++ = ztest_opts.zo_gvars[i];
@@ -6906,6 +6908,10 @@ ztest_run_zdb(const char *pool)
ztest_get_zdb_bin(bin, len);
char **set_gvars_args = ztest_global_vars_to_zdb_args();
+ if (set_gvars_args == NULL) {
+ fatal(B_FALSE, "Failed to allocate memory in "
+ "ztest_global_vars_to_zdb_args(). Cannot run zdb.\n");
+ }
char *set_gvars_args_joined = join_strings(set_gvars_args, " ");
free(set_gvars_args);
diff --git a/lib/libzfs/libzfs_dataset.c b/lib/libzfs/libzfs_dataset.c
index 3288268fb..133b3b358 100644
--- a/lib/libzfs/libzfs_dataset.c
+++ b/lib/libzfs/libzfs_dataset.c
@@ -4164,6 +4164,8 @@ zfs_snapshot_nvl(libzfs_handle_t *hdl, nvlist_t *snaps, nvlist_t *props)
* same pool, as does lzc_snapshot (below).
*/
elem = nvlist_next_nvpair(snaps, NULL);
+ if (elem == NULL)
+ return (-1);
(void) strlcpy(pool, nvpair_name(elem), sizeof (pool));
pool[strcspn(pool, "/@")] = '\0';
zpool_hdl = zpool_open(hdl, pool);