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

Commit 90d78776 authored by Ganesh Mahendran's avatar Ganesh Mahendran Committed by Jin Qian
Browse files

ANDROID: uid_sys_stats: fix access of task_uid(task)



struct task_struct *task should be proteced by tasklist_lock.

Change-Id: Iefcd13442a9b9d855a2bbcde9fd838a4132fee58
Signed-off-by: default avatarGanesh Mahendran <opensource.ganesh@gmail.com>
parent 3f0531e5
Loading
Loading
Loading
Loading
+5 −4
Original line number Diff line number Diff line
@@ -95,9 +95,11 @@ static int uid_cputime_show(struct seq_file *m, void *v)
{
	struct uid_entry *uid_entry;
	struct task_struct *task, *temp;
	struct user_namespace *user_ns = current_user_ns();
	cputime_t utime;
	cputime_t stime;
	unsigned long bkt;
	uid_t uid;

	rt_mutex_lock(&uid_lock);

@@ -108,14 +110,13 @@ static int uid_cputime_show(struct seq_file *m, void *v)

	read_lock(&tasklist_lock);
	do_each_thread(temp, task) {
		uid_entry = find_or_register_uid(from_kuid_munged(
			current_user_ns(), task_uid(task)));
		uid = from_kuid_munged(user_ns, task_uid(task));
		uid_entry = find_or_register_uid(uid);
		if (!uid_entry) {
			read_unlock(&tasklist_lock);
			rt_mutex_unlock(&uid_lock);
			pr_err("%s: failed to find the uid_entry for uid %d\n",
				__func__, from_kuid_munged(current_user_ns(),
				task_uid(task)));
				__func__, uid);
			return -ENOMEM;
		}
		task_cputime_adjusted(task, &utime, &stime);