summaryrefslogtreecommitdiff
path: root/usr/src
diff options
context:
space:
mode:
authorYuri Pankov <yuri.pankov@nexenta.com>2012-08-25 02:44:53 -0500
committerRichard Lowe <richlowe@richlowe.net>2012-08-25 18:45:05 -0400
commitf4c46b1eda9212fd32ba197043d52239ef5c0a7f (patch)
treed3cf1231a99c0d6215d16a802d6a100f39ba9c51 /usr/src
parent2e2c135528b3edfe9aaf67d1f004dc0202fa1a54 (diff)
downloadillumos-joyent-f4c46b1eda9212fd32ba197043d52239ef5c0a7f.tar.gz
3120 zinject hangs in zfsdev_ioctl() due to uninitialized zc
Reviewed by: Richard Lowe <richlowe@richlowe.net> Reviewed by: Eric Schrock <eric.schrock@delphix.com> Reviewed by: Matthew Ahrens <mahrens@delphix.com> Approved by: Richard Lowe <richlowe@richlowe.net>
Diffstat (limited to 'usr/src')
-rw-r--r--usr/src/cmd/zinject/zinject.c12
1 files changed, 5 insertions, 7 deletions
diff --git a/usr/src/cmd/zinject/zinject.c b/usr/src/cmd/zinject/zinject.c
index 60c53ceb3f..aff2539a1b 100644
--- a/usr/src/cmd/zinject/zinject.c
+++ b/usr/src/cmd/zinject/zinject.c
@@ -294,11 +294,9 @@ static int
iter_handlers(int (*func)(int, const char *, zinject_record_t *, void *),
void *data)
{
- zfs_cmd_t zc;
+ zfs_cmd_t zc = { 0 };
int ret;
- zc.zc_guid = 0;
-
while (ioctl(zfs_fd, ZFS_IOC_INJECT_LIST_NEXT, &zc) == 0)
if ((ret = func((int)zc.zc_guid, zc.zc_name,
&zc.zc_inject_record, data)) != 0)
@@ -421,7 +419,7 @@ static int
cancel_one_handler(int id, const char *pool, zinject_record_t *record,
void *data)
{
- zfs_cmd_t zc;
+ zfs_cmd_t zc = { 0 };
zc.zc_guid = (uint64_t)id;
@@ -454,7 +452,7 @@ cancel_all_handlers(void)
static int
cancel_handler(int id)
{
- zfs_cmd_t zc;
+ zfs_cmd_t zc = { 0 };
zc.zc_guid = (uint64_t)id;
@@ -476,7 +474,7 @@ static int
register_handler(const char *pool, int flags, zinject_record_t *record,
int quiet)
{
- zfs_cmd_t zc;
+ zfs_cmd_t zc = { 0 };
(void) strcpy(zc.zc_name, pool);
zc.zc_inject_record = *record;
@@ -533,7 +531,7 @@ register_handler(const char *pool, int flags, zinject_record_t *record,
int
perform_action(const char *pool, zinject_record_t *record, int cmd)
{
- zfs_cmd_t zc;
+ zfs_cmd_t zc = { 0 };
ASSERT(cmd == VDEV_STATE_DEGRADED || cmd == VDEV_STATE_FAULTED);
(void) strlcpy(zc.zc_name, pool, sizeof (zc.zc_name));