Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c995ee28 authored by Nicolas Pitre's avatar Nicolas Pitre Committed by Greg Ungerer
Browse files

binfmt_flat: prevent kernel dammage from corrupted executable headers

parent 4adbb6ac
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -465,6 +465,17 @@ static int load_flat_file(struct linux_binprm *bprm,
		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
	 * of endian hacks,  this only works for the simple cases