Use the local_getmntent_r() funtion copied from glibc in the function table_is_mounted() so that if glibc is changed to support the autofs "ignore" hint automount(8) won't be affected. Signed-off-by: Ian Kent <raven@xxxxxxxxxx> --- CHANGELOG | 1 + lib/mounts.c | 8 ++++---- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 28651a40..3986e23c 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -29,6 +29,7 @@ xx/xx/2019 autofs-5.1.6 - use mp instead of path in mnt_list entries. - always use PROC_MOUNTS to make mount lists. - add glibc getmntent_r(). +- use local getmntent_r in table_is_mounted(). 30/10/2018 autofs-5.1.5 - fix flag file permission. diff --git a/lib/mounts.c b/lib/mounts.c index d7f409d6..26265bb7 100644 --- a/lib/mounts.c +++ b/lib/mounts.c @@ -999,14 +999,14 @@ static int table_is_mounted(const char *mp, unsigned int type) if (!mp || !mp_len || mp_len >= PATH_MAX) return 0; - tab = open_setmntent_r(_PROC_MOUNTS); + tab = open_fopen_r(_PROC_MOUNTS); if (!tab) { char *estr = strerror_r(errno, buf, PATH_MAX - 1); - logerr("setmntent: %s", estr); + logerr("fopen: %s", estr); return 0; } - while ((mnt = getmntent_r(tab, &mnt_wrk, buf, PATH_MAX * 3))) { + while ((mnt = local_getmntent_r(tab, &mnt_wrk, buf, PATH_MAX * 3))) { size_t len = strlen(mnt->mnt_dir); if (type) { @@ -1028,7 +1028,7 @@ static int table_is_mounted(const char *mp, unsigned int type) break; } } - endmntent(tab); + fclose(tab); return ret; }