binfmt_flat: prevent kernel dammage from corrupted executable headers
Signed-off-by: Nicolas Pitre <nico@linaro.org> Signed-off-by: Greg Ungerer <gerg@linux-m68k.org>
This commit is contained in:
parent
4adbb6ac4b
commit
c995ee28d2
|
@ -465,6 +465,17 @@ static int load_flat_file(struct linux_binprm *bprm,
|
||||||
goto err;
|
goto err;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Make sure the header params are sane.
|
||||||
|
* 28 bits (256 MB) is way more than reasonable in this case.
|
||||||
|
* If some top bits are set we have probable binary corruption.
|
||||||
|
*/
|
||||||
|
if ((text_len | data_len | bss_len | stack_len | full_data) >> 28) {
|
||||||
|
pr_err("bad header\n");
|
||||||
|
ret = -ENOEXEC;
|
||||||
|
goto err;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* fix up the flags for the older format, there were all kinds
|
* fix up the flags for the older format, there were all kinds
|
||||||
* of endian hacks, this only works for the simple cases
|
* of endian hacks, this only works for the simple cases
|
||||||
|
|
Loading…
Reference in a new issue