summaryrefslogtreecommitdiff
path: root/usr/src/uts/common/inet/ip/ip.c
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src/uts/common/inet/ip/ip.c')
-rw-r--r--usr/src/uts/common/inet/ip/ip.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/usr/src/uts/common/inet/ip/ip.c b/usr/src/uts/common/inet/ip/ip.c
index 46272b2b22..3cfdbe73ff 100644
--- a/usr/src/uts/common/inet/ip/ip.c
+++ b/usr/src/uts/common/inet/ip/ip.c
@@ -9635,12 +9635,18 @@ ip_snmp_get(queue_t *q, mblk_t *mpctl, int level, boolean_t legacy_req)
if ((mpctl = udp_snmp_get(q, mpctl, legacy_req)) == NULL) {
return (1);
}
+ if (level == MIB2_UDP) {
+ goto done;
+ }
}
if (level != MIB2_UDP) {
if ((mpctl = tcp_snmp_get(q, mpctl, legacy_req)) == NULL) {
return (1);
}
+ if (level == MIB2_TCP) {
+ goto done;
+ }
}
if ((mpctl = ip_snmp_get_mib2_ip_traffic_stats(q, mpctl,
@@ -9717,6 +9723,7 @@ ip_snmp_get(queue_t *q, mblk_t *mpctl, int level, boolean_t legacy_req)
if ((mpctl = ip_snmp_get_mib2_ip_dce(q, mpctl, ipst)) == NULL) {
return (1);
}
+done:
freemsg(mpctl);
return (1);
}