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

Commit 25aca347 authored by Cesar Eduardo Barros's avatar Cesar Eduardo Barros Committed by Dave Jones
Browse files

[CPUFREQ] fix show_trans_table



Fix show_trans_table when it overflows PAGE_SIZE.

* Not all snprintf calls were protected against being passed a negative
length.
* When show_trans_table overflows, len might be > PAGE_SIZE. In that case,
returns PAGE_SIZE.

Signed-off-by: default avatarCesar Eduardo Barros <cesarb@cesarb.net>
Signed-off-by: default avatarDave Jones <davej@codemonkey.org.uk>
parent 74212ca4
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -114,7 +114,7 @@ show_trans_table(struct cpufreq_policy *policy, char *buf)
				stat->freq_table[i]);
	}
	if (len >= PAGE_SIZE)
		return len;
		return PAGE_SIZE;

	len += snprintf(buf + len, PAGE_SIZE - len, "\n");

@@ -131,8 +131,12 @@ show_trans_table(struct cpufreq_policy *policy, char *buf)
			len += snprintf(buf + len, PAGE_SIZE - len, "%9u ",
					stat->trans_table[i*stat->max_state+j]);
		}
		if (len >= PAGE_SIZE)
			break;
		len += snprintf(buf + len, PAGE_SIZE - len, "\n");
	}
	if (len >= PAGE_SIZE)
		return PAGE_SIZE;
	return len;
}
CPUFREQ_STATDEVICE_ATTR(trans_table,0444,show_trans_table);