diff options
| author | Mohit Aggarwal <maggarwa@codeaurora.org> | 2017-07-06 10:16:52 +0530 |
|---|---|---|
| committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2017-07-16 23:58:09 -0700 |
| commit | c032cdd08e0959a1a90ad5fc51ae5ca3188f1aa5 (patch) | |
| tree | 6d70574ba21948354e6c3edb939b1171094f6244 /drivers | |
| parent | 9fa4a186c0a244f2e388d5f89576534a0ca88ea8 (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.c | 6 |
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; |
