summaryrefslogtreecommitdiff
path: root/drivers/char
diff options
context:
space:
mode:
authorGopikrishna Mogasati <gmogas@codeaurora.org>2017-04-20 16:25:20 +0530
committerGopikrishna Mogasati <gmogas@codeaurora.org>2017-04-20 16:52:49 +0530
commit51d53940ea70b5af9418aba4028082b86365fa7b (patch)
tree17fa7b959e0a7440ad9ab92a91ec47a7c790f922 /drivers/char
parent7684fb148e9ba54b73b2a896b75d29a10b70ab25 (diff)
diag: Fix to check for command length size
Fix to validate payload length size while forwarding commands to remote processor. CRs-Fixed: 2004417 Change-Id: Ia047f7895002409e176eeb9e1ddfef69849636ea Signed-off-by: Sreelakshmi Gownipalli <sgownipa@codeaurora.org> Signed-off-by: Gopikrishna Mogasati <gmogas@codeaurora.org>
Diffstat (limited to 'drivers/char')
-rw-r--r--drivers/char/diag/diagchar_core.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/char/diag/diagchar_core.c b/drivers/char/diag/diagchar_core.c
index 4f56696f52e9..c6614c9b38ad 100644
--- a/drivers/char/diag/diagchar_core.c
+++ b/drivers/char/diag/diagchar_core.c
@@ -985,6 +985,11 @@ static int diag_send_raw_data_remote(int proc, void *buf, int len,
hdlc_disabled = driver->hdlc_disabled;
if (hdlc_disabled) {
payload = *(uint16_t *)(buf + 2);
+ if (payload > DIAG_MAX_HDLC_BUF_SIZE) {
+ pr_err("diag: Dropping packet, payload size is %d\n",
+ payload);
+ return -EBADMSG;
+ }
driver->hdlc_encode_buf_len = payload;
/*
* Adding 4 bytes for start (1 byte), version (1 byte) and