automount: check for recursive automount
automount_mount calls run_command which may trigger an automount again. This results in an endless loop. A simple way to trigger this is: mkdir /x; automount /x false; cd /x; something Use a static variable to detect if we are currently in automount_mount() and bail out if we are. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
This commit is contained in:
parent
477199c684
commit
621266d3a4
10
fs/fs.c
10
fs/fs.c
|
@ -409,6 +409,12 @@ static void automount_mount(const char *path, int instat)
|
|||
{
|
||||
struct automount *am;
|
||||
int ret;
|
||||
static int in_automount;
|
||||
|
||||
if (in_automount)
|
||||
return;
|
||||
|
||||
in_automount++;
|
||||
|
||||
list_for_each_entry(am, &automount_list, list) {
|
||||
int len_path = strlen(path);
|
||||
|
@ -444,8 +450,10 @@ static void automount_mount(const char *path, int instat)
|
|||
else
|
||||
automount_remove(am->path);
|
||||
|
||||
return;
|
||||
break;
|
||||
}
|
||||
|
||||
in_automount--;
|
||||
}
|
||||
|
||||
BAREBOX_MAGICVAR(automount_path, "mountpath passed to automount scripts");
|
||||
|
|
Loading…
Reference in New Issue