44 lines
1.9 KiB
Diff
44 lines
1.9 KiB
Diff
diff -urNp a/agent/mibgroup/if-mib/data_access/interface_linux.c b/agent/mibgroup/if-mib/data_access/interface_linux.c
|
|
--- a/agent/mibgroup/if-mib/data_access/interface_linux.c 2024-07-16 10:05:43.294653089 +0200
|
|
+++ b/agent/mibgroup/if-mib/data_access/interface_linux.c 2024-07-16 10:23:55.392041022 +0200
|
|
@@ -609,7 +609,6 @@ netsnmp_arch_interface_container_load(ne
|
|
{
|
|
FILE *devin;
|
|
char line[256];
|
|
- netsnmp_interface_entry *entry = NULL;
|
|
static char scan_expected = 0;
|
|
int fd;
|
|
int interfaces = 0;
|
|
@@ -690,6 +689,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;
|
|
@@ -733,8 +733,13 @@ netsnmp_arch_interface_container_load(ne
|
|
* ip version is to look for ip addresses. If anyone
|
|
* knows a better way, put it here!
|
|
*/
|
|
-#ifdef NETSNMP_ENABLE_IPV6
|
|
if_index = netsnmp_arch_interface_index_find(ifstart);
|
|
+ if (if_index == 0) {
|
|
+ DEBUGMSGTL(("access:interface", "network interface %s is gone",
|
|
+ ifstart));
|
|
+ continue;
|
|
+ }
|
|
+#ifdef NETSNMP_ENABLE_IPV6
|
|
_arch_interface_has_ipv6(if_index, &flags, addr_container);
|
|
#endif
|
|
netsnmp_access_interface_ioctl_has_ipv4(fd, ifstart, 0, &flags, &ifc);
|
|
@@ -752,7 +757,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);
|