summaryrefslogtreecommitdiff
path: root/drivers/misc
diff options
context:
space:
mode:
authorLinux Build Service Account <lnxbuild@localhost>2019-02-28 22:47:17 -0800
committerGerrit - the friendly Code Review server <code-review@localhost>2019-02-28 22:47:16 -0800
commite93fe31e7a61afa385f171c1d26c2e0f26276c24 (patch)
treefa6334c1d2e33df7177235ecad177608a55ad64e /drivers/misc
parentae4efa3cc1a4a8a45fe1ea6e38453fbd73de350d (diff)
parentafc89f6f2b7f45b42bba57c09c8551cf193b6cfb (diff)
Merge "qdsp6v2: q6usm: Check size of payload before access"
Diffstat (limited to 'drivers/misc')
-rw-r--r--drivers/misc/qcom/qdsp6v2/ultrasound/q6usm.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/misc/qcom/qdsp6v2/ultrasound/q6usm.c b/drivers/misc/qcom/qdsp6v2/ultrasound/q6usm.c
index 654252ffec60..127de5440196 100644
--- a/drivers/misc/qcom/qdsp6v2/ultrasound/q6usm.c
+++ b/drivers/misc/qcom/qdsp6v2/ultrasound/q6usm.c
@@ -507,6 +507,12 @@ static int32_t q6usm_mmapcallback(struct apr_client_data *data, void *priv)
uint32_t token;
uint32_t *payload = data->payload;
+ if (data->payload_size < (2 * sizeof(uint32_t))) {
+ pr_err("%s: payload has invalid size[%d]\n", __func__,
+ data->payload_size);
+ return -EINVAL;
+ }
+
pr_debug("%s: ptr0[0x%x]; ptr1[0x%x]; opcode[0x%x]\n",
__func__, payload[0], payload[1], data->opcode);
pr_debug("%s: token[0x%x]; payload_size[%d]; src[%d]; dest[%d];\n",