60 lines
1.8 KiB
Diff
60 lines
1.8 KiB
Diff
autofs-5.1.8 - improve handling of ENOENT in sss setautomntent()
|
|
|
|
From: Ian Kent <raven@themaw.net>
|
|
|
|
In the sss lookup module function setautomntent() a return of ENOENT
|
|
isn't handled quite right.
|
|
|
|
If ENOENT (rather than EHOSTDOWN) is returned from sss setautomntent()
|
|
we should assume the LDAP info. has been read by sss and the entry in
|
|
fact doesn't exist.
|
|
|
|
Signed-off-by: Ian Kent <raven@themaw.net>
|
|
---
|
|
CHANGELOG | 1 +
|
|
modules/lookup_sss.c | 16 +++++++++++++++-
|
|
2 files changed, 16 insertions(+), 1 deletion(-)
|
|
|
|
--- autofs-5.1.4.orig/CHANGELOG
|
|
+++ autofs-5.1.4/CHANGELOG
|
|
@@ -106,6 +106,7 @@
|
|
- fix minus only option handling in concat_options().
|
|
- fix incorrect path for is_mounted() in try_remount().
|
|
- fail on empty replicated host name.
|
|
+- improve handling of ENOENT in sss setautomntent().
|
|
|
|
xx/xx/2018 autofs-5.1.5
|
|
- fix flag file permission.
|
|
--- autofs-5.1.4.orig/modules/lookup_sss.c
|
|
+++ autofs-5.1.4/modules/lookup_sss.c
|
|
@@ -394,7 +394,17 @@ static int setautomntent(unsigned int lo
|
|
if (ret != ENOENT)
|
|
goto error;
|
|
} else {
|
|
- if (ret != ENOENT && ret != EHOSTDOWN)
|
|
+ /* If we get an ENOENT here assume it's accurrate
|
|
+ * and return the error.
|
|
+ */
|
|
+ if (ret == ENOENT) {
|
|
+ error(logopt, MODPREFIX
|
|
+ "setautomountent: entry for map %s not found",
|
|
+ ctxt->mapname);
|
|
+ err = NSS_STATUS_NOTFOUND;
|
|
+ goto free;
|
|
+ }
|
|
+ if (ret != EHOSTDOWN)
|
|
goto error;
|
|
}
|
|
|
|
@@ -410,6 +420,10 @@ static int setautomntent(unsigned int lo
|
|
if (ret == EINVAL)
|
|
goto free;
|
|
if (ret == ENOENT) {
|
|
+ /* Map info. not found after host became available */
|
|
+ error(logopt, MODPREFIX
|
|
+ "setautomountent: entry for map %s not found",
|
|
+ ctxt->mapname);
|
|
err = NSS_STATUS_NOTFOUND;
|
|
goto free;
|
|
}
|