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

Commit 02947a00 authored by Harsh Sahu's avatar Harsh Sahu Committed by Rajkumar Subbiah
Browse files

msm: mdss: Handling possible integer overflow



fudge_factor calculation can suffer from integer overflow as numer and
denom are user controlled. Hence this change will first check for the
overflow and return immediately.

CRs-Fixed: 1110860
Change-Id: I3fab3edd4515d7a4c67f29d68b2039f234b03612
Signed-off-by: default avatarHarsh Sahu <hsahu@codeaurora.org>
parent 58319123
Loading
Loading
Loading
Loading
+12 −2
Original line number Diff line number Diff line
@@ -73,8 +73,18 @@ static void __mdss_mdp_mixer_write_cfg(struct mdss_mdp_mixer *mixer,

static inline u64 fudge_factor(u64 val, u32 numer, u32 denom)
{
	u64 result = (val * (u64)numer);
	u64 result = val;

	if (val) {
		u64 temp = -1UL;

		do_div(temp, val);
		if (temp > numer) {
			/* no overflow, so we can do the operation*/
			result = (val * (u64)numer);
			do_div(result, denom);
		}
	}
	return result;
}