mirror of
https://github.com/Divested-Mobile/DivestOS-Build.git
synced 2024-10-01 01:35:54 -04:00
29 lines
999 B
Diff
29 lines
999 B
Diff
|
From 19384322b5b51987bd6037f7a6b18a62a5d4d654 Mon Sep 17 00:00:00 2001
|
||
|
From: Jianqiang Zhao <zhaojianqiang1@gmail.com>
|
||
|
Date: Mon, 6 Mar 2017 16:33:42 +0800
|
||
|
Subject: [PATCH] ANDROID: input: keychord: fix race condition bug
|
||
|
|
||
|
Change-Id: I9c7c759c99e21cad9a7f9a09128122bf6ae11302
|
||
|
Signed-off-by: Jianqiang Zhao <zhaojianqiang1@gmail.com>
|
||
|
Bug: 36006779
|
||
|
---
|
||
|
drivers/input/misc/keychord.c | 4 +++-
|
||
|
1 file changed, 3 insertions(+), 1 deletion(-)
|
||
|
|
||
|
diff --git a/drivers/input/misc/keychord.c b/drivers/input/misc/keychord.c
|
||
|
index a5ea27ad0e16c..f580edf1c87ce 100644
|
||
|
--- a/drivers/input/misc/keychord.c
|
||
|
+++ b/drivers/input/misc/keychord.c
|
||
|
@@ -300,8 +300,10 @@ static ssize_t keychord_write(struct file *file, const char __user *buffer,
|
||
|
|
||
|
ret = input_register_handler(&kdev->input_handler);
|
||
|
if (ret) {
|
||
|
- kfree(keychords);
|
||
|
+ spin_lock_irqsave(&kdev->lock, flags);
|
||
|
+ kfree(kdev->keychords);
|
||
|
kdev->keychords = 0;
|
||
|
+ spin_unlock_irqrestore(&kdev->lock, flags);
|
||
|
return ret;
|
||
|
}
|
||
|
kdev->registered = 1;
|