Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 16 Oct 2019 06:34:58 +0000 (UTC)
From:      Andriy Gapon <avg@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org
Subject:   svn commit: r353613 - vendor-sys/illumos/dist/uts/common/fs/zfs
Message-ID:  <201910160634.x9G6Ywd6083078@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: avg
Date: Wed Oct 16 06:34:58 2019
New Revision: 353613
URL: https://svnweb.freebsd.org/changeset/base/353613

Log:
  10731 zfs: NULL pointer errors
  
  illumos/illumos-gate@dd328bf6d39366b8d7bde6a36114538fc14332dd
  https://github.com/illumos/illumos-gate/commit/dd328bf6d39366b8d7bde6a36114538fc14332dd
  
  https://www.illumos.org/issues/10731
  
  Author: Toomas Soome <tsoome@me.com>

Modified:
  vendor-sys/illumos/dist/uts/common/fs/zfs/dsl_pool.c
  vendor-sys/illumos/dist/uts/common/fs/zfs/sa.c
  vendor-sys/illumos/dist/uts/common/fs/zfs/zcp.c
  vendor-sys/illumos/dist/uts/common/fs/zfs/zcp_get.c
  vendor-sys/illumos/dist/uts/common/fs/zfs/zcp_global.c
  vendor-sys/illumos/dist/uts/common/fs/zfs/zcp_iter.c
  vendor-sys/illumos/dist/uts/common/fs/zfs/zcp_synctask.c
  vendor-sys/illumos/dist/uts/common/fs/zfs/zfs_ioctl.c

Modified: vendor-sys/illumos/dist/uts/common/fs/zfs/dsl_pool.c
==============================================================================
--- vendor-sys/illumos/dist/uts/common/fs/zfs/dsl_pool.c	Wed Oct 16 06:26:51 2019	(r353612)
+++ vendor-sys/illumos/dist/uts/common/fs/zfs/dsl_pool.c	Wed Oct 16 06:34:58 2019	(r353613)
@@ -1147,8 +1147,7 @@ int
 dsl_pool_user_release(dsl_pool_t *dp, uint64_t dsobj, const char *tag,
     dmu_tx_t *tx)
 {
-	return (dsl_pool_user_hold_rele_impl(dp, dsobj, tag, NULL,
-	    tx, B_FALSE));
+	return (dsl_pool_user_hold_rele_impl(dp, dsobj, tag, 0, tx, B_FALSE));
 }
 
 /*

Modified: vendor-sys/illumos/dist/uts/common/fs/zfs/sa.c
==============================================================================
--- vendor-sys/illumos/dist/uts/common/fs/zfs/sa.c	Wed Oct 16 06:26:51 2019	(r353612)
+++ vendor-sys/illumos/dist/uts/common/fs/zfs/sa.c	Wed Oct 16 06:34:58 2019	(r353613)
@@ -1577,12 +1577,12 @@ sa_attr_register_sync(sa_handle_t *hdl, dmu_tx_t *tx)
 
 	mutex_enter(&sa->sa_lock);
 
-	if (!sa->sa_need_attr_registration || sa->sa_master_obj == NULL) {
+	if (!sa->sa_need_attr_registration || sa->sa_master_obj == 0) {
 		mutex_exit(&sa->sa_lock);
 		return;
 	}
 
-	if (sa->sa_reg_attr_obj == NULL) {
+	if (sa->sa_reg_attr_obj == 0) {
 		sa->sa_reg_attr_obj = zap_create_link(hdl->sa_os,
 		    DMU_OT_SA_ATTR_REGISTRATION,
 		    sa->sa_master_obj, SA_REGISTRY, tx);

Modified: vendor-sys/illumos/dist/uts/common/fs/zfs/zcp.c
==============================================================================
--- vendor-sys/illumos/dist/uts/common/fs/zfs/zcp.c	Wed Oct 16 06:26:51 2019	(r353612)
+++ vendor-sys/illumos/dist/uts/common/fs/zfs/zcp.c	Wed Oct 16 06:34:58 2019	(r353613)
@@ -608,23 +608,23 @@ zcp_dataset_hold_error(lua_State *state, dsl_pool_t *d
 {
 	if (error == ENOENT) {
 		(void) zcp_argerror(state, 1, "no such dataset '%s'", dsname);
-		return (NULL); /* not reached; zcp_argerror will longjmp */
+		return (0); /* not reached; zcp_argerror will longjmp */
 	} else if (error == EXDEV) {
 		(void) zcp_argerror(state, 1,
 		    "dataset '%s' is not in the target pool '%s'",
 		    dsname, spa_name(dp->dp_spa));
-		return (NULL); /* not reached; zcp_argerror will longjmp */
+		return (0); /* not reached; zcp_argerror will longjmp */
 	} else if (error == EIO) {
 		(void) luaL_error(state,
 		    "I/O error while accessing dataset '%s'", dsname);
-		return (NULL); /* not reached; luaL_error will longjmp */
+		return (0); /* not reached; luaL_error will longjmp */
 	} else if (error != 0) {
 		(void) luaL_error(state,
 		    "unexpected error %d while accessing dataset '%s'",
 		    error, dsname);
-		return (NULL); /* not reached; luaL_error will longjmp */
+		return (0); /* not reached; luaL_error will longjmp */
 	}
-	return (NULL);
+	return (0);
 }
 
 /*
@@ -647,10 +647,10 @@ static zcp_lib_info_t zcp_debug_info = {
 	.func = zcp_debug,
 	.pargs = {
 	    { .za_name = "debug string", .za_lua_type = LUA_TSTRING},
-	    {NULL, NULL}
+	    {NULL, 0}
 	},
 	.kwargs = {
-	    {NULL, NULL}
+	    {NULL, 0}
 	}
 };
 
@@ -676,10 +676,10 @@ static zcp_lib_info_t zcp_exists_info = {
 	.func = zcp_exists,
 	.pargs = {
 	    { .za_name = "dataset", .za_lua_type = LUA_TSTRING},
-	    {NULL, NULL}
+	    {NULL, 0}
 	},
 	.kwargs = {
-	    {NULL, NULL}
+	    {NULL, 0}
 	}
 };
 

Modified: vendor-sys/illumos/dist/uts/common/fs/zfs/zcp_get.c
==============================================================================
--- vendor-sys/illumos/dist/uts/common/fs/zfs/zcp_get.c	Wed Oct 16 06:26:51 2019	(r353612)
+++ vendor-sys/illumos/dist/uts/common/fs/zfs/zcp_get.c	Wed Oct 16 06:34:58 2019	(r353613)
@@ -330,8 +330,7 @@ get_special_prop(lua_State *state, dsl_dataset_t *ds, 
 		error = get_clones_stat_impl(ds, clones);
 		if (error == 0) {
 			/* push list to lua stack */
-			VERIFY0(zcp_nvlist_to_lua(state, clones, NULL,
-			    NULL));
+			VERIFY0(zcp_nvlist_to_lua(state, clones, NULL, 0));
 			/* source */
 			(void) lua_pushnil(state);
 		}
@@ -792,10 +791,10 @@ static zcp_lib_info_t zcp_get_prop_info = {
 	.pargs = {
 	    { .za_name = "dataset", .za_lua_type = LUA_TSTRING},
 	    { .za_name = "property", .za_lua_type =  LUA_TSTRING},
-	    {NULL, NULL}
+	    {NULL, 0}
 	},
 	.kwargs = {
-	    {NULL, NULL}
+	    {NULL, 0}
 	}
 };
 

Modified: vendor-sys/illumos/dist/uts/common/fs/zfs/zcp_global.c
==============================================================================
--- vendor-sys/illumos/dist/uts/common/fs/zfs/zcp_global.c	Wed Oct 16 06:26:51 2019	(r353612)
+++ vendor-sys/illumos/dist/uts/common/fs/zfs/zcp_global.c	Wed Oct 16 06:34:58 2019	(r353613)
@@ -68,7 +68,7 @@ static const zcp_errno_global_t errno_globals[] = {
 	{"ENOTSUP", ENOTSUP},
 	{"EDQUOT", EDQUOT},
 	{"ENAMETOOLONG", ENAMETOOLONG},
-	{NULL, NULL}
+	{NULL, 0}
 };
 
 static void

Modified: vendor-sys/illumos/dist/uts/common/fs/zfs/zcp_iter.c
==============================================================================
--- vendor-sys/illumos/dist/uts/common/fs/zfs/zcp_iter.c	Wed Oct 16 06:26:51 2019	(r353612)
+++ vendor-sys/illumos/dist/uts/common/fs/zfs/zcp_iter.c	Wed Oct 16 06:34:58 2019	(r353613)
@@ -110,10 +110,10 @@ static zcp_list_info_t zcp_clones_list_info = {
 	.gc = NULL,
 	.pargs = {
 	    { .za_name = "snapshot", .za_lua_type = LUA_TSTRING},
-	    {NULL, NULL}
+	    {NULL, 0}
 	},
 	.kwargs = {
-	    {NULL, NULL}
+	    {NULL, 0}
 	}
 };
 
@@ -199,10 +199,10 @@ static zcp_list_info_t zcp_snapshots_list_info = {
 	.gc = NULL,
 	.pargs = {
 	    { .za_name = "filesystem | volume", .za_lua_type = LUA_TSTRING},
-	    {NULL, NULL}
+	    {NULL, 0}
 	},
 	.kwargs = {
-	    {NULL, NULL}
+	    {NULL, 0}
 	}
 };
 
@@ -300,10 +300,10 @@ static zcp_list_info_t zcp_children_list_info = {
 	.gc = NULL,
 	.pargs = {
 	    { .za_name = "filesystem | volume", .za_lua_type = LUA_TSTRING},
-	    {NULL, NULL}
+	    {NULL, 0}
 	},
 	.kwargs = {
-	    {NULL, NULL}
+	    {NULL, 0}
 	}
 };
 
@@ -381,10 +381,10 @@ static zcp_list_info_t zcp_props_list_info = {
 	.pargs = {
 	    { .za_name = "filesystem | snapshot | volume",
 	    .za_lua_type = LUA_TSTRING},
-	    {NULL, NULL}
+	    {NULL, 0}
 	},
 	.kwargs = {
-	    {NULL, NULL}
+	    {NULL, 0}
 	}
 };
 
@@ -439,10 +439,10 @@ static zcp_list_info_t zcp_system_props_list_info = {
 	.func = zcp_system_props_list,
 	.pargs = {
 	    { .za_name = "dataset", .za_lua_type = LUA_TSTRING},
-	    {NULL, NULL}
+	    {NULL, 0}
 	},
 	.kwargs = {
-	    {NULL, NULL}
+	    {NULL, 0}
 	}
 };
 

Modified: vendor-sys/illumos/dist/uts/common/fs/zfs/zcp_synctask.c
==============================================================================
--- vendor-sys/illumos/dist/uts/common/fs/zfs/zcp_synctask.c	Wed Oct 16 06:26:51 2019	(r353612)
+++ vendor-sys/illumos/dist/uts/common/fs/zfs/zcp_synctask.c	Wed Oct 16 06:34:58 2019	(r353613)
@@ -104,11 +104,11 @@ static zcp_synctask_info_t zcp_synctask_destroy_info =
 	.func = zcp_synctask_destroy,
 	.pargs = {
 	    {.za_name = "filesystem | snapshot", .za_lua_type = LUA_TSTRING},
-	    {NULL, NULL}
+	    {NULL, 0}
 	},
 	.kwargs = {
 	    {.za_name = "defer", .za_lua_type = LUA_TBOOLEAN},
-	    {NULL, NULL}
+	    {NULL, 0}
 	},
 	.space_check = ZFS_SPACE_CHECK_DESTROY,
 	.blocks_modified = 0
@@ -157,10 +157,10 @@ static zcp_synctask_info_t zcp_synctask_promote_info =
 	.func = zcp_synctask_promote,
 	.pargs = {
 	    {.za_name = "clone", .za_lua_type = LUA_TSTRING},
-	    {NULL, NULL}
+	    {NULL, 0}
 	},
 	.kwargs = {
-	    {NULL, NULL}
+	    {NULL, 0}
 	},
 	.space_check = ZFS_SPACE_CHECK_RESERVED,
 	.blocks_modified = 3
@@ -196,10 +196,10 @@ static zcp_synctask_info_t zcp_synctask_rollback_info 
 	.blocks_modified = 1,
 	.pargs = {
 	    {.za_name = "filesystem", .za_lua_type = LUA_TSTRING},
-	    {NULL, NULL}
+	    {NULL, 0}
 	},
 	.kwargs = {
-	    {NULL, NULL}
+	    {NULL, 0}
 	}
 };
 
@@ -226,10 +226,10 @@ static zcp_synctask_info_t zcp_synctask_snapshot_info 
 	.pargs = {
 	    {.za_name = "filesystem@snapname | volume@snapname",
 	    .za_lua_type = LUA_TSTRING},
-	    {NULL, NULL}
+	    {NULL, 0}
 	},
 	.kwargs = {
-	    {NULL, NULL}
+	    {NULL, 0}
 	},
 	.space_check = ZFS_SPACE_CHECK_NORMAL,
 	.blocks_modified = 3

Modified: vendor-sys/illumos/dist/uts/common/fs/zfs/zfs_ioctl.c
==============================================================================
--- vendor-sys/illumos/dist/uts/common/fs/zfs/zfs_ioctl.c	Wed Oct 16 06:26:51 2019	(r353612)
+++ vendor-sys/illumos/dist/uts/common/fs/zfs/zfs_ioctl.c	Wed Oct 16 06:34:58 2019	(r353613)
@@ -306,7 +306,7 @@ history_str_get(zfs_cmd_t *zc)
 {
 	char *buf;
 
-	if (zc->zc_history == NULL)
+	if (zc->zc_history == 0)
 		return (NULL);
 
 	buf = kmem_alloc(HIS_MAX_RECORD_LEN, KM_SLEEP);
@@ -2221,7 +2221,7 @@ zfs_ioc_objset_zplprops(zfs_cmd_t *zc)
 	 * which we aren't supposed to do with a DS_MODE_USER
 	 * hold, because it could be inconsistent.
 	 */
-	if (zc->zc_nvlist_dst != NULL &&
+	if (zc->zc_nvlist_dst != 0 &&
 	    !zc->zc_objset_stats.dds_inconsistent &&
 	    dmu_objset_type(os) == DMU_OST_ZFS) {
 		nvlist_t *nv;
@@ -2778,7 +2778,7 @@ zfs_ioc_set_prop(zfs_cmd_t *zc)
 	if (error == 0)
 		error = zfs_set_prop_nvlist(zc->zc_name, source, nvl, errors);
 
-	if (zc->zc_nvlist_dst != NULL && errors != NULL) {
+	if (zc->zc_nvlist_dst != 0 && errors != NULL) {
 		(void) put_nvlist(zc, errors);
 	}
 
@@ -2929,7 +2929,7 @@ zfs_ioc_pool_get_props(zfs_cmd_t *zc)
 		spa_close(spa, FTAG);
 	}
 
-	if (error == 0 && zc->zc_nvlist_dst != NULL)
+	if (error == 0 && zc->zc_nvlist_dst != 0)
 		error = put_nvlist(zc, nvp);
 	else
 		error = SET_ERROR(EFAULT);
@@ -4401,7 +4401,7 @@ zfs_ioc_recv(zfs_cmd_t *zc)
 	tosnap = strchr(tofs, '@');
 	*tosnap++ = '\0';
 
-	if (zc->zc_nvlist_src != NULL &&
+	if (zc->zc_nvlist_src != 0 &&
 	    (error = get_nvlist(zc->zc_nvlist_src, zc->zc_nvlist_src_size,
 	    zc->zc_iflags, &props)) != 0)
 		return (error);
@@ -4825,7 +4825,7 @@ zfs_ioc_clear(zfs_cmd_t *zc)
 		nvlist_t *policy;
 		nvlist_t *config = NULL;
 
-		if (zc->zc_nvlist_src == NULL)
+		if (zc->zc_nvlist_src == 0)
 			return (SET_ERROR(EINVAL));
 
 		if ((error = get_nvlist(zc->zc_nvlist_src,



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201910160634.x9G6Ywd6083078>