f0c239fe26
snmpd: - fix trap processing from SMUX peers - fix disman/event monitoring crashes - fix bug 1399369: ifNumber broken - fix re-init of daemons after SIGHUP snmptrapd: - fix bug 1420758/1458815: snmptrapd aborts/loops in select() - fix re-init of daemons after SIGHUP snmplib: - fix OID lookups for fully qualified object names (eg .iso.org) snmpusm: - performance improvement when changing localized keys perl: - The perl modules now check to make sure they're building against the proper Net-SNMP version. misc: - Coverity fixes
47 lines
1.4 KiB
Text
47 lines
1.4 KiB
Text
$NetBSD: patch-ds,v 1.2 2006/07/29 16:48:27 adam Exp $
|
|
|
|
--- agent/mibgroup/mibII/udpTable.c.orig 2006-06-27 17:25:38.000000000 +0200
|
|
+++ agent/mibgroup/mibII/udpTable.c
|
|
@@ -615,7 +615,11 @@ udpTable_load(netsnmp_cache *cache, void
|
|
size_t len;
|
|
int sname[] = { CTL_NET, PF_INET, IPPROTO_UDP, UDPCTL_PCBLIST };
|
|
char *udpcb_buf = NULL;
|
|
+#if defined(dragonfly)
|
|
+ struct xinpcb *xig = NULL;
|
|
+#else
|
|
struct xinpgen *xig = NULL;
|
|
+#endif
|
|
UDPTABLE_ENTRY_TYPE *nnew;
|
|
|
|
udpTable_free(NULL, NULL);
|
|
@@ -636,10 +640,18 @@ udpTable_load(netsnmp_cache *cache, void
|
|
* Unpick this into the constituent 'xinpgen' structures, and extract
|
|
* the 'inpcb' elements into a linked list (built in reverse)
|
|
*/
|
|
+#if defined(dragonfly)
|
|
+ xig = (struct xinpcb *) udpcb_buf;
|
|
+#else
|
|
xig = (struct xinpgen *) udpcb_buf;
|
|
xig = (struct xinpgen *) ((char *) xig + xig->xig_len);
|
|
+#endif
|
|
|
|
+#if defined(dragonfly)
|
|
+ while (xig && ((char *)xig + xig->xi_len < udpcb_buf + len)) {
|
|
+#else
|
|
while (xig && (xig->xig_len > sizeof(struct xinpgen))) {
|
|
+#endif
|
|
nnew = SNMP_MALLOC_TYPEDEF(UDPTABLE_ENTRY_TYPE);
|
|
if (!nnew)
|
|
break;
|
|
@@ -652,7 +664,11 @@ udpTable_load(netsnmp_cache *cache, void
|
|
#endif
|
|
|
|
udp_head = nnew;
|
|
+#if defined(dragonfly)
|
|
+ xig = (struct xinpcb *) ((char *) xig + xig->xi_len);
|
|
+#else
|
|
xig = (struct xinpgen *) ((char *) xig + xig->xig_len);
|
|
+#endif
|
|
}
|
|
|
|
free(udpcb_buf);
|