On Sat, May 22, 2021 at 07:31:53PM +0800, menglong8.dong@xxxxxxxxx wrote: > Introduce the function ramdisk_exec_exist, which is used to check > the exist of 'ramdisk_execute_command'. > > It can do absolute path and relative path check. For relative path, > it will ignore '/' and '.' in the start of > 'ramdisk_execute_command'. > --- a/init/main.c > +++ b/init/main.c > @@ -1522,6 +1522,21 @@ void __init console_on_rootfs(void) > fput(file); > } > > +bool __init ramdisk_exec_exist(bool absolute) > +{ > + char *tmp_command = ramdisk_execute_command; > + > + if (!tmp_command) > + return false; > + > + if (!absolute) { > + while (*tmp_command == '/' || *tmp_command == '.') > + tmp_command++; As far as I can tell, this will break if the user wants to use ".mybinary" or ".mydir/mybinary" as the name of their init program. For that matter, it would break "...prog" or "...somedir/prog", which would be strange but not something the kernel should prevent. I don't think this code should be attempting to recreate relative-to-absolute filename resolution.