diff options
| author | Ruchi Kandoi <kandoiruchi@google.com> | 2015-10-23 17:49:11 -0700 |
|---|---|---|
| committer | Moyster <oysterized@gmail.com> | 2016-09-10 16:03:51 +0200 |
| commit | 8468a745527003d204685bd4a8c83f17a930888d (patch) | |
| tree | c346be249e7dab8b26d5194893e7162b0b9a9438 | |
| parent | 3ea18b0bf06cef526f5eb57de69c5ffd05a90cf3 (diff) | |
| download | android_kernel_m2note-8468a745527003d204685bd4a8c83f17a930888d.tar.gz | |
uid_cputime: Check for the range while removing range of UIDs.
Checking if the uid_entry->uid matches the uid intended to be removed will
prevent deleting unwanted uid_entry.
Type cast the key for the hashtable to the same size, as when they were
inserted. This will make sure that we can find the uid_entry we want.
Bug: 25195548
Change-Id: I567942123cfb20e4b61ad624da19ec4cc84642c1
Signed-off: Ruchi kandoi <kandoiruchi@google.com>
| -rw-r--r-- | drivers/misc/uid_cputime.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/drivers/misc/uid_cputime.c b/drivers/misc/uid_cputime.c index 43298a43e..c751188ce 100644 --- a/drivers/misc/uid_cputime.c +++ b/drivers/misc/uid_cputime.c @@ -174,14 +174,15 @@ static ssize_t uid_remove_write(struct file *file, kstrtol(end_uid, 10, &uid_end) != 0) { return -EINVAL; } - mutex_lock(&uid_lock); for (; uid_start <= uid_end; uid_start++) { hash_for_each_possible_safe(hash_table, uid_entry, tmp, - hash, uid_start) { - hash_del(&uid_entry->hash); - kfree(uid_entry); + hash, (uid_t)uid_start) { + if (uid_start == uid_entry->uid) { + hash_del(&uid_entry->hash); + kfree(uid_entry); + } } } |
