pkgsrc/net/net-snmp/patches/patch-dr
adam d872659bfa Changes 5.4.2:
snmplib:
- [PATCH 1921861]: Avoid endless loop after truncating 64bit int
- Better handling of CONTAINER_INSERT failures with multiple indices

snmpd:
- [PATCH 2023633]: add SCTP-MIB implementation (Linux only)
- suppress annoying "registration != duplicate" warning for root oids

build:
- [BUG 2023803]: Compilation problems on HP-UX 11.31
- Update to libtool 1.5.26

AIX:
- Add support for AIX 6.x.
2008-09-08 12:58:09 +00:00

47 lines
1.5 KiB
Text

$NetBSD: patch-dr,v 1.2 2008/09/08 12:58:09 adam Exp $
--- agent/mibgroup/mibII/tcpTable.c.orig 2007-10-14 14:12:58.000000000 +0200
+++ agent/mibgroup/mibII/tcpTable.c
@@ -719,7 +719,11 @@ tcpTable_load(netsnmp_cache *cache, void
size_t len;
int sname[] = { CTL_NET, PF_INET, IPPROTO_TCP, TCPCTL_PCBLIST };
char *tcpcb_buf = NULL;
+#if defined(dragonfly)
+ struct xtcpcb *xig = NULL;
+#else
struct xinpgen *xig = NULL;
+#endif
netsnmp_inpcb *nnew;
int StateMap[] = { 1, 2, 3, 4, 5, 8, 6, 10, 9, 7, 11 };
@@ -741,10 +745,18 @@ tcpTable_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 xtcpcb *) tcpcb_buf;
+#else
xig = (struct xinpgen *) tcpcb_buf;
xig = (struct xinpgen *) ((char *) xig + xig->xig_len);
+#endif
+#if defined(dragonfly)
+ while (xig && ((char *)xig + xig->xt_len < tcpcb_buf + len)) {
+#else
while (xig && (xig->xig_len > sizeof(struct xinpgen))) {
+#endif
nnew = SNMP_MALLOC_TYPEDEF(netsnmp_inpcb);
if (!nnew)
break;
@@ -757,7 +769,11 @@ tcpTable_load(netsnmp_cache *cache, void
nnew->inp_next = tcp_head;
tcp_head = nnew;
+#if defined(dragonfly)
+ xig = (struct xtcpcb *) ((char *) xig + xig->xt_len);
+#else
xig = (struct xinpgen *) ((char *) xig + xig->xig_len);
+#endif
}
free(tcpcb_buf);