diff --git a/sbin/sysctl/sysctl.c b/sbin/sysctl/sysctl.c index fb7c3058594..1c498568a53 100644 --- a/sbin/sysctl/sysctl.c +++ b/sbin/sysctl/sysctl.c @@ -270,8 +270,14 @@ T_dev_t(int l2, void *p) dev_t *d = (dev_t *)p; if (l2 != sizeof *d) err(1, "T_dev_T %d != %d", l2, sizeof *d); - printf("{ major = %d, minor = %d }", - major(*d), minor(*d)); + if ((int)(*d) != -1) { + if (minor(*d) > 255 || minor(*d) < 0) + printf("{ major = %d, minor = 0x%x }", + major(*d), minor(*d)); + else + printf("{ major = %d, minor = %d }", + major(*d), minor(*d)); + } return (0); }