diff -Nru net-snmp-5.7.3+dfsg/debian/changelog net-snmp-5.7.3+dfsg/debian/changelog --- net-snmp-5.7.3+dfsg/debian/changelog 2018-10-15 15:16:15.000000000 +0100 +++ net-snmp-5.7.3+dfsg/debian/changelog 2019-08-21 12:55:14.000000000 +0100 @@ -1,3 +1,12 @@ +net-snmp (5.7.3+dfsg-1.8ubuntu3.2) bionic; urgency=medium + + * Skip autofs entries when calling statfs to prevent autofs being mounted on + snmpd startup (LP: #1835818): + - d/p/autofs-skip-autofs-entries.patch + - d/p/autofs-fix-a-recently-introduced-bug.patch + + -- Ioanna Alifieraki Wed, 21 Aug 2019 12:55:14 +0100 + net-snmp (5.7.3+dfsg-1.8ubuntu3.1) bionic-security; urgency=medium * SECURITY UPDATE: DoS via NULL pointer exception diff -Nru net-snmp-5.7.3+dfsg/debian/patches/autofs-fix-a-recently-introduced-bug.patch net-snmp-5.7.3+dfsg/debian/patches/autofs-fix-a-recently-introduced-bug.patch --- net-snmp-5.7.3+dfsg/debian/patches/autofs-fix-a-recently-introduced-bug.patch 1970-01-01 01:00:00.000000000 +0100 +++ net-snmp-5.7.3+dfsg/debian/patches/autofs-fix-a-recently-introduced-bug.patch 2019-08-21 12:55:09.000000000 +0100 @@ -0,0 +1,27 @@ +From: Bart Van Assche +Origin: Upstream, https://sourceforge.net/p/net-snmp/code/ci/a0df31c18c513a0d79f4d526b1af7fad48748e57/ +Bug: https://sourceforge.net/p/net-snmp/bugs/2968/ +Bug-Ubuntu: https://bugs.launchpad.net/bugs/1835818 +Date: Fri, 26 Jul 2019 21:40:12 -0700 +Subject: [PATCH] HOST-MIB: Fix a recently introduced bug + +Fixes: cf41e6e91015 ("HOST-MIB: Skip autofs entries") + +Note: this bug was not introduced by Josef but by me. +--- + agent/mibgroup/host/hrh_storage.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +Index: net-snmp-5.7.3+dfsg/agent/mibgroup/host/hrh_storage.c +=================================================================== +--- net-snmp-5.7.3+dfsg.orig/agent/mibgroup/host/hrh_storage.c ++++ net-snmp-5.7.3+dfsg/agent/mibgroup/host/hrh_storage.c +@@ -372,7 +372,7 @@ really_try_next: + NETSNMP_DS_AGENT_SKIPNFSINHOSTRESOURCES) && + Check_HR_FileSys_NFS()) + return NULL; +- if (Check_HR_FileSys_AutoFs()) ++ if (HRFS_entry && Check_HR_FileSys_AutoFs()) + return NULL; + if (store_idx <= NETSNMP_MEM_TYPE_MAX ) { + mem = (netsnmp_memory_info*)ptr; diff -Nru net-snmp-5.7.3+dfsg/debian/patches/autofs-skip-autofs-entries.patch net-snmp-5.7.3+dfsg/debian/patches/autofs-skip-autofs-entries.patch --- net-snmp-5.7.3+dfsg/debian/patches/autofs-skip-autofs-entries.patch 1970-01-01 01:00:00.000000000 +0100 +++ net-snmp-5.7.3+dfsg/debian/patches/autofs-skip-autofs-entries.patch 2019-08-21 12:54:55.000000000 +0100 @@ -0,0 +1,232 @@ +Description: Skip autofs entries when calling statfs +Backported from upstream commit cf41e6e910158fb4c4cb546c4 : +Remove parenthesis from last hunk to apply cleanly. +From: Josef Ridky +Origin: Upstream, https://sourceforge.net/p/net-snmp/patches/1350/ +Bug: https://sourceforge.net/p/net-snmp/bugs/2968/ +Bug-Ubuntu: https://bugs.launchpad.net/bugs/1835818 +Date: Wed, 24 Jul 2019 07:23:47 -0700 +Subject: [PATCH] HOST-MIB: Skip autofs entries + +Do not call statfs() for autofs entries. + +See also https://sourceforge.net/p/net-snmp/patches/1350/. +See also https://sourceforge.net/p/net-snmp/bugs/2968/. + +[ bvanassche: Made several small edits ] +--- + agent/mibgroup/hardware/fsys/fsys_mntctl.c | 8 ++++++-- + agent/mibgroup/hardware/fsys/fsys_mntent.c | 11 +++++++++++ + agent/mibgroup/hardware/fsys/mnttypes.h | 3 +++ + agent/mibgroup/host/hr_filesys.c | 21 +++++++++++++++++++++ + agent/mibgroup/host/hr_filesys.h | 1 + + agent/mibgroup/host/hr_storage.c | 5 ++++- + agent/mibgroup/host/hrh_filesys.c | 6 ++++++ + agent/mibgroup/host/hrh_filesys.h | 1 + + agent/mibgroup/host/hrh_storage.c | 5 ++++- + include/net-snmp/agent/hardware/fsys.h | 1 + + 10 files changed, 58 insertions(+), 4 deletions(-) + +Index: net-snmp-5.7.3+dfsg/agent/mibgroup/hardware/fsys/fsys_mntctl.c +=================================================================== +--- net-snmp-5.7.3+dfsg.orig/agent/mibgroup/hardware/fsys/fsys_mntctl.c ++++ net-snmp-5.7.3+dfsg/agent/mibgroup/hardware/fsys/fsys_mntctl.c +@@ -43,8 +43,9 @@ _fsys_type( int type) + + case MNT_NFS: + case MNT_NFS3: +- case MNT_AUTOFS: + return NETSNMP_FS_TYPE_NFS; ++ case MNT_AUTOFS: ++ return NETSNMP_FS_TYPE_AUTOFS; + + /* + * The following code covers selected filesystems +@@ -155,12 +156,15 @@ netsnmp_fsys_arch_load( void ) + */ + + /* +- * Optionally skip retrieving statistics for remote mounts ++ * Skip retrieving statistics for AUTOFS and optionally for remote ++ * mounts. + */ + if ( (entry->flags & NETSNMP_FS_FLAG_REMOTE) && + netsnmp_ds_get_boolean(NETSNMP_DS_APPLICATION_ID, + NETSNMP_DS_AGENT_SKIPNFSINHOSTRESOURCES)) + continue; ++ if (entry->type == NETSNMP_FS_TYPE_AUTOFS) ++ continue; + + if ( statfs( entry->path, &stat_buf ) < 0 ) { + snprintf( tmpbuf, sizeof(tmpbuf), "Cannot statfs %s", entry->path ); +Index: net-snmp-5.7.3+dfsg/agent/mibgroup/hardware/fsys/fsys_mntent.c +=================================================================== +--- net-snmp-5.7.3+dfsg.orig/agent/mibgroup/hardware/fsys/fsys_mntent.c ++++ net-snmp-5.7.3+dfsg/agent/mibgroup/hardware/fsys/fsys_mntent.c +@@ -146,6 +146,13 @@ _fsys_type( char *typename ) + !strcmp(typename, MNTTYPE_LOFS)) + return NETSNMP_FS_TYPE_OTHER; + ++ /* Detection of AUTOFS. ++ * This file system will be ignored by default ++ */ ++ else if (!strcmp(typename, MNTTYPE_AUTOFS)) ++ return NETSNMP_FS_TYPE_AUTOFS; ++ ++ + /* + * All other types are silently skipped + */ +@@ -232,6 +239,10 @@ netsnmp_fsys_arch_load( void ) + NETSNMP_DS_AGENT_SKIPNFSINHOSTRESOURCES)) + continue; + ++ /* Skip AUTOFS entries */ ++ if (entry->type == NETSNMP_FS_TYPE_AUTOFS) ++ continue; ++ + #ifdef irix6 + if ( NSFS_STATFS( entry->path, &stat_buf, sizeof(struct statfs), 0) < 0 ) + #else +Index: net-snmp-5.7.3+dfsg/agent/mibgroup/hardware/fsys/mnttypes.h +=================================================================== +--- net-snmp-5.7.3+dfsg.orig/agent/mibgroup/hardware/fsys/mnttypes.h ++++ net-snmp-5.7.3+dfsg/agent/mibgroup/hardware/fsys/mnttypes.h +@@ -162,6 +162,9 @@ + #ifndef MNTTYPE_APP + #define MNTTYPE_APP "app" + #endif ++#ifndef MNTTYPE_AUTOFS ++#define MNTTYPE_AUTOFS "autofs" ++#endif + #ifndef MNTTYPE_DEVPTS + #define MNTTYPE_DEVPTS "devpts" + #endif +Index: net-snmp-5.7.3+dfsg/agent/mibgroup/host/hr_filesys.c +=================================================================== +--- net-snmp-5.7.3+dfsg.orig/agent/mibgroup/host/hr_filesys.c ++++ net-snmp-5.7.3+dfsg/agent/mibgroup/host/hr_filesys.c +@@ -839,6 +839,27 @@ Check_HR_FileSys_NFS (void) + return 0; /* no NFS file system */ + } + ++/* This function checks whether current file system is an AutoFs ++ * HRFS_entry must be valid prior to calling this function ++ * return 1 if AutoFs, 0 otherwise ++ */ ++int ++Check_HR_FileSys_AutoFs(void) ++{ ++#if HAVE_GETFSSTAT ++ if (HRFS_entry->HRFS_type != NULL && ++#if defined(MNTTYPE_AUTOFS) ++ !strcmp(HRFS_entry->HRFS_type, MNTTYPE_AUTOFS) ++#else ++ !strcmp(HRFS_entry->HRFS_type, "autofs") ++#endif ++ ) ++#endif /* HAVE_GETFSSTAT */ ++ return 1; /* AUTOFS */ ++ ++ return 0; /* no AUTOFS */ ++} ++ + void + End_HR_FileSys(void) + { +Index: net-snmp-5.7.3+dfsg/agent/mibgroup/host/hr_filesys.h +=================================================================== +--- net-snmp-5.7.3+dfsg.orig/agent/mibgroup/host/hr_filesys.h ++++ net-snmp-5.7.3+dfsg/agent/mibgroup/host/hr_filesys.h +@@ -10,6 +10,7 @@ extern void Init_HR_FileSys(void); + extern FindVarMethod var_hrfilesys; + extern int Get_Next_HR_FileSys(void); + extern int Check_HR_FileSys_NFS(void); ++extern int Check_HR_FileSys_AutoFs(void); + + extern int Get_FSIndex(char *); + extern long Get_FSSize(char *); /* Temporary */ +Index: net-snmp-5.7.3+dfsg/agent/mibgroup/host/hr_storage.c +=================================================================== +--- net-snmp-5.7.3+dfsg.orig/agent/mibgroup/host/hr_storage.c ++++ net-snmp-5.7.3+dfsg/agent/mibgroup/host/hr_storage.c +@@ -549,6 +549,8 @@ really_try_next: + NETSNMP_DS_AGENT_SKIPNFSINHOSTRESOURCES) && + Check_HR_FileSys_NFS()) + return NULL; /* or goto try_next; */ ++ if (Check_HR_FileSys_AutoFs()) ++ return NULL; + if (HRFS_statfs(HRFS_entry->HRFS_mount, &stat_buf) < 0) { + snmp_log_perror(HRFS_entry->HRFS_mount); + goto try_next; +@@ -688,7 +690,8 @@ Get_Next_HR_Store(void) + if (HRS_index >= 0) { + if (!(netsnmp_ds_get_boolean(NETSNMP_DS_APPLICATION_ID, + NETSNMP_DS_AGENT_SKIPNFSINHOSTRESOURCES) && +- Check_HR_FileSys_NFS())) { ++ Check_HR_FileSys_NFS()) && ++ !Check_HR_FileSys_AutoFs()) { + return HRS_index + NETSNMP_MEM_TYPE_MAX; + } + } else { +Index: net-snmp-5.7.3+dfsg/agent/mibgroup/host/hrh_filesys.c +=================================================================== +--- net-snmp-5.7.3+dfsg.orig/agent/mibgroup/host/hrh_filesys.c ++++ net-snmp-5.7.3+dfsg/agent/mibgroup/host/hrh_filesys.c +@@ -427,3 +427,9 @@ Check_HR_FileSys_NFS (void) + { + return (HRFS_entry->flags & NETSNMP_FS_FLAG_REMOTE) ? 1 : 0; + } ++ ++int ++Check_HR_FileSys_AutoFs (void) ++{ ++ return HRFS_entry->type == NETSNMP_FS_TYPE_AUTOFS; ++} +Index: net-snmp-5.7.3+dfsg/agent/mibgroup/host/hrh_filesys.h +=================================================================== +--- net-snmp-5.7.3+dfsg.orig/agent/mibgroup/host/hrh_filesys.h ++++ net-snmp-5.7.3+dfsg/agent/mibgroup/host/hrh_filesys.h +@@ -10,6 +10,7 @@ extern void Init_HR_FileSys(void); + extern FindVarMethod var_hrhfilesys; + extern int Get_Next_HR_FileSys(void); + extern int Check_HR_FileSys_NFS(void); ++extern int Check_HR_FileSys_AutoFs(void); + + extern int Get_FSIndex(char *); + extern long Get_FSSize(char *); /* Temporary */ +Index: net-snmp-5.7.3+dfsg/agent/mibgroup/host/hrh_storage.c +=================================================================== +--- net-snmp-5.7.3+dfsg.orig/agent/mibgroup/host/hrh_storage.c ++++ net-snmp-5.7.3+dfsg/agent/mibgroup/host/hrh_storage.c +@@ -372,6 +372,8 @@ really_try_next: + NETSNMP_DS_AGENT_SKIPNFSINHOSTRESOURCES) && + Check_HR_FileSys_NFS()) + return NULL; ++ if (Check_HR_FileSys_AutoFs()) ++ return NULL; + if (store_idx <= NETSNMP_MEM_TYPE_MAX ) { + mem = (netsnmp_memory_info*)ptr; + } +@@ -509,7 +511,8 @@ Get_Next_HR_Store(void) + if (HRS_index >= 0) { + if (!(netsnmp_ds_get_boolean(NETSNMP_DS_APPLICATION_ID, + NETSNMP_DS_AGENT_SKIPNFSINHOSTRESOURCES) && +- Check_HR_FileSys_NFS())) { ++ Check_HR_FileSys_NFS()) && ++ !Check_HR_FileSys_AutoFs()) { + return HRS_index + NETSNMP_MEM_TYPE_MAX; + } + } else { +Index: net-snmp-5.7.3+dfsg/include/net-snmp/agent/hardware/fsys.h +=================================================================== +--- net-snmp-5.7.3+dfsg.orig/include/net-snmp/agent/hardware/fsys.h ++++ net-snmp-5.7.3+dfsg/include/net-snmp/agent/hardware/fsys.h +@@ -41,6 +41,7 @@ typedef struct netsnmp_fsys_info_s netsn + #define NETSNMP_FS_TYPE_SYSFS 4 | _NETSNMP_FS_TYPE_LOCAL | _NETSNMP_FS_TYPE_SKIP_BIT + #define NETSNMP_FS_TYPE_TMPFS 5 | _NETSNMP_FS_TYPE_LOCAL + #define NETSNMP_FS_TYPE_USBFS 6 | _NETSNMP_FS_TYPE_LOCAL ++#define NETSNMP_FS_TYPE_AUTOFS 7 | _NETSNMP_FS_TYPE_LOCAL | _NETSNMP_FS_TYPE_SKIP_BIT + + #define NETSNMP_FS_FLAG_ACTIVE 0x01 + #define NETSNMP_FS_FLAG_REMOTE 0x02 diff -Nru net-snmp-5.7.3+dfsg/debian/patches/series net-snmp-5.7.3+dfsg/debian/patches/series --- net-snmp-5.7.3+dfsg/debian/patches/series 2018-10-15 15:16:09.000000000 +0100 +++ net-snmp-5.7.3+dfsg/debian/patches/series 2019-08-21 12:55:00.000000000 +0100 @@ -36,3 +36,5 @@ my_load_defaults 0001-swinst_apt.c-Fix-indexing-of-hrSWInstalledTable-to-s.patch CVE-2018-18065.patch +autofs-skip-autofs-entries.patch +autofs-fix-a-recently-introduced-bug.patch