summaryrefslogtreecommitdiff
path: root/usr/src
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src')
-rw-r--r--usr/src/cmd/cmd-inet/usr.sbin/ifconfig/ifconfig.c2
-rw-r--r--usr/src/cmd/cmd-inet/usr.sbin/ifconfig/revarp.c4
-rw-r--r--usr/src/cmd/dladm/dladm.c4
-rw-r--r--usr/src/uts/common/io/dld/dld_proto.c35
-rw-r--r--usr/src/uts/common/io/mac/mac.c2
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);
/*