summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorMohit Aggarwal <maggarwa@codeaurora.org>2017-07-06 10:16:52 +0530
committerGerrit - the friendly Code Review server <code-review@localhost>2017-07-16 23:58:09 -0700
commitc032cdd08e0959a1a90ad5fc51ae5ca3188f1aa5 (patch)
tree6d70574ba21948354e6c3edb939b1171094f6244 /drivers
parent9fa4a186c0a244f2e388d5f89576534a0ca88ea8 (diff)
diag: Add protection while de-initializing clients
Currently, while de-initializing clients, there is a possibility of using already freed memory. The patch adds proper protection to fix the issue. CRs-Fixed: 2068569 Change-Id: I4b397a82e03fa2f1c84cfa8ca912cdb6a51ba08b Signed-off-by: Mohit Aggarwal <maggarwa@codeaurora.org>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/char/diag/diagchar_core.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/char/diag/diagchar_core.c b/drivers/char/diag/diagchar_core.c
index afaedc99a4e7..5cc4d8fbd0c8 100644
--- a/drivers/char/diag/diagchar_core.c
+++ b/drivers/char/diag/diagchar_core.c
@@ -1836,14 +1836,18 @@ static int diag_ioctl_lsm_deinit(void)
{
int i;
+ mutex_lock(&driver->diagchar_mutex);
for (i = 0; i < driver->num_clients; i++)
if (driver->client_map[i].pid == current->tgid)
break;
- if (i == driver->num_clients)
+ if (i == driver->num_clients) {
+ mutex_unlock(&driver->diagchar_mutex);
return -EINVAL;
+ }
driver->data_ready[i] |= DEINIT_TYPE;
+ mutex_unlock(&driver->diagchar_mutex);
wake_up_interruptible(&driver->wait_q);
return 1;