42 lines
1.7 KiB
Diff
42 lines
1.7 KiB
Diff
|
diff -up net-snmp-5.8/agent/mibgroup/if-mib/data_access/interface_linux.c.original net-snmp-5.8/agent/mibgroup/if-mib/data_access/interface_linux.c
|
||
|
--- net-snmp-5.8/agent/mibgroup/if-mib/data_access/interface_linux.c.original 2022-02-02 15:06:29.382119898 +0900
|
||
|
+++ net-snmp-5.8/agent/mibgroup/if-mib/data_access/interface_linux.c 2022-02-02 15:15:39.298280447 +0900
|
||
|
@@ -600,7 +600,6 @@ netsnmp_arch_interface_container_load(ne
|
||
|
{
|
||
|
FILE *devin;
|
||
|
char line[256];
|
||
|
- netsnmp_interface_entry *entry = NULL;
|
||
|
static char scan_expected = 0;
|
||
|
int fd;
|
||
|
#ifdef NETSNMP_ENABLE_IPV6
|
||
|
@@ -669,6 +668,7 @@ netsnmp_arch_interface_container_load(ne
|
||
|
* and retrieve (or create) the corresponding data structure.
|
||
|
*/
|
||
|
while (fgets(line, sizeof(line), devin)) {
|
||
|
+ netsnmp_interface_entry *entry = NULL;
|
||
|
char *stats, *ifstart = line;
|
||
|
u_int flags;
|
||
|
oid if_index;
|
||
|
@@ -701,6 +701,11 @@ netsnmp_arch_interface_container_load(ne
|
||
|
*stats++ = 0; /* null terminate name */
|
||
|
|
||
|
if_index = netsnmp_arch_interface_index_find(ifstart);
|
||
|
+ if (if_index == 0) {
|
||
|
+ DEBUGMSGTL(("access:interface", "network interface %s is gone",
|
||
|
+ ifstart));
|
||
|
+ continue;
|
||
|
+ }
|
||
|
|
||
|
/*
|
||
|
* set address type flags.
|
||
|
@@ -726,7 +731,7 @@ netsnmp_arch_interface_container_load(ne
|
||
|
continue;
|
||
|
}
|
||
|
|
||
|
- entry = netsnmp_access_interface_entry_create(ifstart, 0);
|
||
|
+ entry = netsnmp_access_interface_entry_create(ifstart, if_index);
|
||
|
if(NULL == entry) {
|
||
|
#ifdef NETSNMP_ENABLE_IPV6
|
||
|
netsnmp_access_ipaddress_container_free(addr_container, 0);
|
||
|
|