summaryrefslogtreecommitdiff
path: root/usr/src
diff options
context:
space:
mode:
authorCody Peter Mello <cody.mello@joyent.com>2015-08-15 00:01:43 +0000
committerCody Peter Mello <cody.mello@joyent.com>2015-08-16 06:13:05 +0000
commit9108c5e07330cfd63586277125b19ee25d543d94 (patch)
treef6df92be61a176eae685abfd56cdfa687a4bb105 /usr/src
parent46835c1dcc9ab3eca8be681d7f43a9575f10d7e5 (diff)
downloadillumos-joyent-9108c5e07330cfd63586277125b19ee25d543d94.tar.gz
OS-4643: mdb ::list command parses arguments incorrectly
Reviewed by: Alex Wilson <alex.wilson@joyent.com>
Diffstat (limited to 'usr/src')
-rw-r--r--usr/src/cmd/mdb/common/mdb/mdb_print.c15
1 files changed, 8 insertions, 7 deletions
diff --git a/usr/src/cmd/mdb/common/mdb/mdb_print.c b/usr/src/cmd/mdb/common/mdb/mdb_print.c
index 263b157f65..fe74265b68 100644
--- a/usr/src/cmd/mdb/common/mdb/mdb_print.c
+++ b/usr/src/cmd/mdb/common/mdb/mdb_print.c
@@ -728,13 +728,6 @@ cmd_list(uintptr_t addr, uint_t flags, int argc, const mdb_arg_t *argv)
char buf[MDB_SYM_NAMLEN];
int ret;
- /*
- * Check that we were provided 2 arguments: a type name
- * and a member of that type.
- */
- if (argc != 2)
- return (DCMD_USAGE);
-
ret = args_to_typename(&argc, &argv, buf, sizeof (buf));
if (ret != 0)
return (ret);
@@ -742,6 +735,14 @@ cmd_list(uintptr_t addr, uint_t flags, int argc, const mdb_arg_t *argv)
argv++;
argc--;
+ /*
+ * If we make it here, we were provided a type name. We should
+ * only continue if we still have arguments left (e.g. member
+ * name and potentially a variable name).
+ */
+ if (argc == 0)
+ return (DCMD_USAGE);
+
member = argv->a_un.a_str;
offset = mdb_ctf_offsetof_by_name(buf, member);
if (offset == -1)