On Mon, Oct 24, 2022 at 11:44:21PM +0800, Li Zetao wrote:
> If "interp_elf_ex" fails to allocate memory in load_elf_binary(),
> the program will take the "out_free_ph" error handing path,
> resulting in "interpreter" file resource is not released.
Yes :-(
> --- a/fs/binfmt_elf.c
> +++ b/fs/binfmt_elf.c
> @@ -911,7 +911,7 @@ static int load_elf_binary(struct linux_binprm *bprm)
> interp_elf_ex = kmalloc(sizeof(*interp_elf_ex), GFP_KERNEL);
> if (!interp_elf_ex) {
> retval = -ENOMEM;
> - goto out_free_ph;
> + goto out_free_file;
Reviewed-by: Alexey Dobriyan <[email protected]>