mirror of
https://github.com/Divested-Mobile/DivestOS-Build.git
synced 2025-09-29 23:18:25 -04:00
Add patches for many Linux CVEs, and overhaul script paths
This commit is contained in:
parent
8c8dc284c9
commit
75099b9404
801 changed files with 123220 additions and 16 deletions
97
Patches/Linux_CVEs/CVE-2016-6791/0.patch
Normal file
97
Patches/Linux_CVEs/CVE-2016-6791/0.patch
Normal file
|
@ -0,0 +1,97 @@
|
|||
From 62580295210b6c0bd809cde7088b45ebb65ace79 Mon Sep 17 00:00:00 2001
|
||||
From: Walter Yang <yandongy@codeaurora.org>
|
||||
Date: Wed, 28 Sep 2016 20:11:23 +0800
|
||||
Subject: ASoC: msm: lock read/write when add/free audio ion memory
|
||||
|
||||
As read/write get access to ion memory region as well, it's
|
||||
necessary to lock them when ion memory is about to be added/freed
|
||||
to avoid racing cases.
|
||||
|
||||
CRs-Fixed: 1071809
|
||||
Change-Id: I436ead23c93384961b38ca99b9312a40c50ad03a
|
||||
Signed-off-by: Walter Yang <yandongy@codeaurora.org>
|
||||
---
|
||||
drivers/misc/qcom/qdsp6v2/audio_utils_aio.c | 22 +++++++++++++++++++++-
|
||||
1 file changed, 21 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/drivers/misc/qcom/qdsp6v2/audio_utils_aio.c b/drivers/misc/qcom/qdsp6v2/audio_utils_aio.c
|
||||
index 8041111..7a4bae3 100644
|
||||
--- a/drivers/misc/qcom/qdsp6v2/audio_utils_aio.c
|
||||
+++ b/drivers/misc/qcom/qdsp6v2/audio_utils_aio.c
|
||||
@@ -1,6 +1,6 @@
|
||||
/* Copyright (C) 2008 Google, Inc.
|
||||
* Copyright (C) 2008 HTC Corporation
|
||||
- * Copyright (c) 2009-2014, The Linux Foundation. All rights reserved.
|
||||
+ * Copyright (c) 2009-2016, The Linux Foundation. All rights reserved.
|
||||
*
|
||||
* This software is licensed under the terms of the GNU General Public
|
||||
* License version 2, as published by the Free Software Foundation, and
|
||||
@@ -570,6 +570,8 @@ int audio_aio_release(struct inode *inode, struct file *file)
|
||||
struct q6audio_aio *audio = file->private_data;
|
||||
pr_debug("%s[%p]\n", __func__, audio);
|
||||
mutex_lock(&audio->lock);
|
||||
+ mutex_lock(&audio->read_lock);
|
||||
+ mutex_lock(&audio->write_lock);
|
||||
audio->wflush = 1;
|
||||
if (audio->enabled)
|
||||
audio_aio_flush(audio);
|
||||
@@ -584,6 +586,8 @@ int audio_aio_release(struct inode *inode, struct file *file)
|
||||
wake_up(&audio->event_wait);
|
||||
audio_aio_reset_event_queue(audio);
|
||||
q6asm_audio_client_free(audio->ac);
|
||||
+ mutex_unlock(&audio->write_lock);
|
||||
+ mutex_unlock(&audio->read_lock);
|
||||
mutex_unlock(&audio->lock);
|
||||
mutex_destroy(&audio->lock);
|
||||
mutex_destroy(&audio->read_lock);
|
||||
@@ -1679,7 +1683,11 @@ static long audio_aio_ioctl(struct file *file, unsigned int cmd,
|
||||
__func__);
|
||||
rc = -EFAULT;
|
||||
} else {
|
||||
+ mutex_lock(&audio->read_lock);
|
||||
+ mutex_lock(&audio->write_lock);
|
||||
rc = audio_aio_ion_add(audio, &info);
|
||||
+ mutex_unlock(&audio->write_lock);
|
||||
+ mutex_unlock(&audio->read_lock);
|
||||
}
|
||||
mutex_unlock(&audio->lock);
|
||||
break;
|
||||
@@ -1694,7 +1702,11 @@ static long audio_aio_ioctl(struct file *file, unsigned int cmd,
|
||||
__func__);
|
||||
rc = -EFAULT;
|
||||
} else {
|
||||
+ mutex_lock(&audio->read_lock);
|
||||
+ mutex_lock(&audio->write_lock);
|
||||
rc = audio_aio_ion_remove(audio, &info);
|
||||
+ mutex_unlock(&audio->write_lock);
|
||||
+ mutex_unlock(&audio->read_lock);
|
||||
}
|
||||
mutex_unlock(&audio->lock);
|
||||
break;
|
||||
@@ -1996,7 +2008,11 @@ static long audio_aio_compat_ioctl(struct file *file, unsigned int cmd,
|
||||
} else {
|
||||
info.fd = info_32.fd;
|
||||
info.vaddr = compat_ptr(info_32.vaddr);
|
||||
+ mutex_lock(&audio->read_lock);
|
||||
+ mutex_lock(&audio->write_lock);
|
||||
rc = audio_aio_ion_add(audio, &info);
|
||||
+ mutex_unlock(&audio->write_lock);
|
||||
+ mutex_unlock(&audio->read_lock);
|
||||
}
|
||||
mutex_unlock(&audio->lock);
|
||||
break;
|
||||
@@ -2013,7 +2029,11 @@ static long audio_aio_compat_ioctl(struct file *file, unsigned int cmd,
|
||||
} else {
|
||||
info.fd = info_32.fd;
|
||||
info.vaddr = compat_ptr(info_32.vaddr);
|
||||
+ mutex_lock(&audio->read_lock);
|
||||
+ mutex_lock(&audio->write_lock);
|
||||
rc = audio_aio_ion_remove(audio, &info);
|
||||
+ mutex_unlock(&audio->write_lock);
|
||||
+ mutex_unlock(&audio->read_lock);
|
||||
}
|
||||
mutex_unlock(&audio->lock);
|
||||
break;
|
||||
--
|
||||
cgit v1.1
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue