summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drivers/char/diag/diag_masks.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/char/diag/diag_masks.c b/drivers/char/diag/diag_masks.c
index c9af1e7f848a..386664188d48 100644
--- a/drivers/char/diag/diag_masks.c
+++ b/drivers/char/diag/diag_masks.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 2008-2018, The Linux Foundation. All rights reserved.
+/* Copyright (c) 2008-2019, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
@@ -2180,6 +2180,8 @@ int diag_process_apps_masks(unsigned char *buf, int len, int pid)
return -EINVAL;
if (*buf == DIAG_CMD_LOG_CONFIG) {
+ if (len < (2 * sizeof(int)))
+ return -EINVAL;
sub_cmd = *(int *)(buf + sizeof(int));
switch (sub_cmd) {
case DIAG_CMD_OP_LOG_DISABLE:
@@ -2196,6 +2198,8 @@ int diag_process_apps_masks(unsigned char *buf, int len, int pid)
break;
}
} else if (*buf == DIAG_CMD_MSG_CONFIG) {
+ if (len < (2 * sizeof(uint8_t)))
+ return -EINVAL;
sub_cmd = *(uint8_t *)(buf + sizeof(uint8_t));
switch (sub_cmd) {
case DIAG_CMD_OP_GET_SSID_RANGE: