Mercurial > illumos > illumos-gate
changeset 13735:1c48a05ba37d
2602 mdb ::sockparams SEGV
Reviewed by: Gordon Ross <gordon.w.ross@gmail.com>
Reviewed by: Milan Jurik <milan.jurik@xylab.cz>
Approved by: Richard Lowe <richlowe@richlowe.net>
author | Andrey Sokolov <keremet@solaris.kirov.ru> |
---|---|
date | Wed, 20 Jun 2012 15:11:05 -0400 |
parents | 41fe4dd8e23d |
children | 9f1d48e1681f |
files | usr/src/cmd/mdb/common/modules/sockfs/sockfs.c |
diffstat | 1 files changed, 11 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/usr/src/cmd/mdb/common/modules/sockfs/sockfs.c Tue Jun 19 13:33:18 2012 -0400 +++ b/usr/src/cmd/mdb/common/modules/sockfs/sockfs.c Wed Jun 20 15:11:05 2012 -0400 @@ -66,6 +66,8 @@ sockparams_prt(uintptr_t addr, uint_t flags, int argc, const mdb_arg_t *argv) { struct sockparams sp; + char strdev[MAXPATHLEN]; + char sockmod[MODMAXNAMELEN]; if ((flags & DCMD_ADDRSPEC) == 0) { uint_t opt_e = 0; @@ -112,12 +114,18 @@ return (DCMD_ERR); } + if ((sp.sp_sdev_info.sd_devpath == NULL) || + (mdb_readstr(strdev, sizeof (strdev), + (uintptr_t)sp.sp_sdev_info.sd_devpath) <= 0)) + strcpy(strdev, "-"); + if (mdb_readstr(sockmod, sizeof (sockmod), + (uintptr_t)sp.sp_smod_name) <= 0) + strcpy(sockmod, ""); + mdb_printf("%0?p %3u %3u %3u %15s %15s %6u %#6x\n", addr, sp.sp_family, sp.sp_type, sp.sp_protocol, - (sp.sp_sdev_info.sd_devpath != 0) ? - sp.sp_sdev_info.sd_devpath : "-", - sp.sp_smod_name, sp.sp_refcnt, + strdev, sockmod, sp.sp_refcnt, sp.sp_flags);