diag: Add proper buffer length checks

The patch adds proper buffer length checks
for handling mask process commands.

Change-Id: Ice05c66cd56693ce20236c991c21dc2f8db2cedd
Signed-off-by: Hardik Arya <harya@codeaurora.org>
This commit is contained in:
Hardik Arya 2019-07-03 12:04:09 +05:30 committed by syphyr
parent 4a0058421a
commit cb746f47d4
1 changed files with 5 additions and 5 deletions

View File

@ -694,7 +694,7 @@ static int diag_cmd_set_all_msg_mask(unsigned char *src_buf, int src_len,
struct diag_msg_mask_t *mask = (struct diag_msg_mask_t *)msg_mask.ptr;
if (!src_buf || !dest_buf || dest_len <= 0 ||
(src_len < sizeof(struct diag_msg_build_mask_t))) {
(src_len < sizeof(struct diag_msg_config_rsp_t))) {
pr_err("diag: Invalid input in %s, src_buf: %pK, src_len: %d, dest_buf: %pK, dest_len: %d",
__func__, src_buf, src_len, dest_buf, dest_len);
return -EINVAL;
@ -782,7 +782,7 @@ static int diag_cmd_update_event_mask(unsigned char *src_buf, int src_len,
struct diag_event_mask_config_t *req;
if (!src_buf || !dest_buf || dest_len <= 0 ||
(src_len < sizeof(struct diag_msg_build_mask_t))) {
(src_len < sizeof(struct diag_event_mask_config_t))) {
pr_err("diag: Invalid input in %s, src_buf: %pK, src_len: %d, dest_buf: %pK, dest_len: %d",
__func__, src_buf, src_len, dest_buf, dest_len);
return -EINVAL;
@ -831,7 +831,7 @@ static int diag_cmd_toggle_events(unsigned char *src_buf, int src_len,
struct diag_event_report_t header;
if (!src_buf || !dest_buf || dest_len <= 0 ||
(src_len < sizeof(struct diag_msg_build_mask_t))) {
(src_len <= sizeof(uint8_t))) {
pr_err("diag: Invalid input in %s, src_buf: %pK, src_len: %d, dest_buf: %pK, dest_len: %d",
__func__, src_buf, src_len, dest_buf, dest_len);
return -EINVAL;
@ -878,7 +878,7 @@ static int diag_cmd_get_log_mask(unsigned char *src_buf, int src_len,
struct diag_log_config_rsp_t rsp;
if (!src_buf || !dest_buf || dest_len <= 0 ||
(src_len < sizeof(struct diag_msg_build_mask_t))) {
(src_len < sizeof(struct diag_log_config_req_t))) {
pr_err("diag: Invalid input in %s, src_buf: %pK, src_len: %d, dest_buf: %pK, dest_len: %d",
__func__, src_buf, src_len, dest_buf, dest_len);
return -EINVAL;
@ -990,7 +990,7 @@ static int diag_cmd_set_log_mask(unsigned char *src_buf, int src_len,
struct diag_log_config_set_rsp_t rsp;
if (!src_buf || !dest_buf || dest_len <= 0 ||
(src_len < sizeof(struct diag_msg_build_mask_t))) {
(src_len < sizeof(struct diag_log_config_req_t))) {
pr_err("diag: Invalid input in %s, src_buf: %pK, src_len: %d, dest_buf: %pK, dest_len: %d",
__func__, src_buf, src_len, dest_buf, dest_len);
return -EINVAL;