diff --git a/CHANGELOG b/CHANGELOG index a7ac9fb..93c79cf 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -36,6 +36,7 @@ - fix map entry expansion when undefined macro is present. - remove unused export validation code. - add dynamic logging (adapted from v4 patch from Jeff Moyer). +- fix recursive loopback mounts (Matthias Koenig). 18/06/2007 autofs-5.0.2 ----------------------- diff --git a/daemon/spawn.c b/daemon/spawn.c index 3d5ea56..ab3274c 100644 --- a/daemon/spawn.c +++ b/daemon/spawn.c @@ -290,7 +290,16 @@ int spawn_mount(unsigned logopt, ...) va_start(arg, logopt); p = argv + 1; - while ((*p++ = va_arg(arg, char *))); + while ((*p = va_arg(arg, char *))) { + if (options == SPAWN_OPT_NONE && !strcmp(*p, "-o")) { + *(++p) = va_arg(arg, char *); + if (!*p) + break; + if (strstr(*p, "loop")) + options = SPAWN_OPT_ACCESS; + } + p++; + } va_end(arg); while (retries--) {