diff options
Diffstat (limited to 'usr/src')
| -rw-r--r-- | usr/src/cmd/cmd-inet/usr.sbin/ifconfig/ifconfig.c | 2 | ||||
| -rw-r--r-- | usr/src/cmd/cmd-inet/usr.sbin/ifconfig/revarp.c | 4 | ||||
| -rw-r--r-- | usr/src/cmd/dladm/dladm.c | 4 | ||||
| -rw-r--r-- | usr/src/uts/common/io/dld/dld_proto.c | 35 | ||||
| -rw-r--r-- | usr/src/uts/common/io/mac/mac.c | 2 |
5 files changed, 26 insertions, 21 deletions
diff --git a/usr/src/cmd/cmd-inet/usr.sbin/ifconfig/ifconfig.c b/usr/src/cmd/cmd-inet/usr.sbin/ifconfig/ifconfig.c index 1e5dfb3497..4037676de6 100644 --- a/usr/src/cmd/cmd-inet/usr.sbin/ifconfig/ifconfig.c +++ b/usr/src/cmd/cmd-inet/usr.sbin/ifconfig/ifconfig.c @@ -2881,7 +2881,7 @@ ifstatus(const char *ifname) (void) printf(" metric %d", lifr.lifr_metric); } if (ioctl(s, SIOCGLIFMTU, (caddr_t)&lifr) >= 0) - (void) printf(" mtu %d", lifr.lifr_metric); + (void) printf(" mtu %u", lifr.lifr_mtu); /* don't print index or zone when in compatibility mode */ if (!v4compat) { diff --git a/usr/src/cmd/cmd-inet/usr.sbin/ifconfig/revarp.c b/usr/src/cmd/cmd-inet/usr.sbin/ifconfig/revarp.c index af798ca2c6..725c8b24c3 100644 --- a/usr/src/cmd/cmd-inet/usr.sbin/ifconfig/revarp.c +++ b/usr/src/cmd/cmd-inet/usr.sbin/ifconfig/revarp.c @@ -19,7 +19,7 @@ * CDDL HEADER END */ /* - * Copyright 2007 Sun Microsystems, Inc. All rights reserved. + * Copyright 2008 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ @@ -380,7 +380,7 @@ dlpi_print_address(const char *linkname) str = _link_ntoa(physaddr, NULL, physaddrlen, IFT_OTHER); - if (str != NULL) { + if (str != NULL && physaddrlen != 0) { switch (dlinfo.di_mactype) { case DL_IB: (void) printf("\tipib %s \n", str); diff --git a/usr/src/cmd/dladm/dladm.c b/usr/src/cmd/dladm/dladm.c index 117e1ff888..91e660dd8b 100644 --- a/usr/src/cmd/dladm/dladm.c +++ b/usr/src/cmd/dladm/dladm.c @@ -473,7 +473,7 @@ static char *print_dev(print_field_t *, void *); typedef struct link_fields_buf_s { char link_name[MAXLINKNAMELEN]; char link_class[DLADM_STRSIZE]; - char link_mtu[6]; + char link_mtu[11]; char link_state[DLADM_STRSIZE]; char link_over[MAXLINKNAMELEN]; char link_phys_state[6]; @@ -1805,7 +1805,7 @@ link_mtu: (void) dladm_class2str(class, lbuf->link_class); if (state->ls_flags == DLADM_OPT_ACTIVE) { (void) snprintf(lbuf->link_mtu, sizeof (lbuf->link_mtu), - "%d", mtu); + "%u", mtu); (void) get_linkstate(link, B_TRUE, lbuf->link_state); } diff --git a/usr/src/uts/common/io/dld/dld_proto.c b/usr/src/uts/common/io/dld/dld_proto.c index f572c3c322..5bc1fc5322 100644 --- a/usr/src/uts/common/io/dld/dld_proto.c +++ b/usr/src/uts/common/io/dld/dld_proto.c @@ -885,23 +885,28 @@ proto_physaddr_req(dld_str_t *dsp, union DL_primitives *udlp, mblk_t *mp) } addr_length = dsp->ds_mip->mi_addr_length; - addr = kmem_alloc(addr_length, KM_NOSLEEP); - if (addr == NULL) { - rw_exit(&dsp->ds_lock); - merror(q, mp, ENOSR); - return (B_FALSE); - } + if (addr_length > 0) { + addr = kmem_alloc(addr_length, KM_NOSLEEP); + if (addr == NULL) { + rw_exit(&dsp->ds_lock); + merror(q, mp, ENOSR); + return (B_FALSE); + } - /* - * Copy out the address before we drop the lock; we don't - * want to call dlphysaddrack() while holding ds_lock. - */ - bcopy((dlp->dl_addr_type == DL_CURR_PHYS_ADDR) ? - dsp->ds_curr_addr : dsp->ds_fact_addr, addr, addr_length); + /* + * Copy out the address before we drop the lock; we don't + * want to call dlphysaddrack() while holding ds_lock. + */ + bcopy((dlp->dl_addr_type == DL_CURR_PHYS_ADDR) ? + dsp->ds_curr_addr : dsp->ds_fact_addr, addr, addr_length); - rw_exit(&dsp->ds_lock); - dlphysaddrack(q, mp, addr, (t_uscalar_t)addr_length); - kmem_free(addr, addr_length); + rw_exit(&dsp->ds_lock); + dlphysaddrack(q, mp, addr, (t_uscalar_t)addr_length); + kmem_free(addr, addr_length); + } else { + rw_exit(&dsp->ds_lock); + dlphysaddrack(q, mp, NULL, 0); + } return (B_TRUE); failed: rw_exit(&dsp->ds_lock); diff --git a/usr/src/uts/common/io/mac/mac.c b/usr/src/uts/common/io/mac/mac.c index d564add30d..4767f6bf44 100644 --- a/usr/src/uts/common/io/mac/mac.c +++ b/usr/src/uts/common/io/mac/mac.c @@ -2780,7 +2780,7 @@ mactype_register(mactype_register_t *mtrp) mactype_ops_t *ops = mtrp->mtr_ops; /* Do some sanity checking before we register this MAC type. */ - if (mtrp->mtr_ident == NULL || ops == NULL || mtrp->mtr_addrlen == 0) + if (mtrp->mtr_ident == NULL || ops == NULL) return (EINVAL); /* |
