diff options
author | Manoj Prabhu B <bmanoj@codeaurora.org> | 2018-09-01 00:35:16 -0700 |
---|---|---|
committer | android-build-merger <android-build-merger@google.com> | 2018-09-01 00:35:16 -0700 |
commit | 6606069cc103efb784ebb74716602d1b527fdc14 (patch) | |
tree | c9198135b330b53b595e086aba14567f29d5f481 | |
parent | bd10cc3febf010282110623d1fb1af3acb75ec8b (diff) | |
parent | dbeb9a83bc0f62fd939d4560ed904d08fc3650d0 (diff) | |
download | qcom-msm8x53-v3.18-6606069cc103efb784ebb74716602d1b527fdc14.tar.gz |
diag: Update mask buffer after reallocation
am: dbeb9a83bc
Change-Id: If6a5030b812056e668998dcee63d3828412d3072
-rw-r--r-- | drivers/char/diag/diag_masks.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/drivers/char/diag/diag_masks.c b/drivers/char/diag/diag_masks.c index ef0a324bc82..833a5fadd27 100644 --- a/drivers/char/diag/diag_masks.c +++ b/drivers/char/diag/diag_masks.c @@ -167,10 +167,11 @@ static void diag_send_log_mask_update(uint8_t peripheral, int equip_id) } mask_info->update_buf = temp; mask_info->update_buf_len = header_len + mask_size; + buf = temp; } memcpy(buf, &ctrl_pkt, header_len); - if (mask_size > 0) + if (mask_size > 0 && mask_size <= LOG_MASK_SIZE) memcpy(buf + header_len, mask->ptr, mask_size); mutex_unlock(&mask->lock); @@ -254,9 +255,16 @@ static void diag_send_event_mask_update(uint8_t peripheral) } else { mask_info->update_buf = temp; mask_info->update_buf_len = temp_len; + buf = temp; } } - memcpy(buf + sizeof(header), mask_info->ptr, num_bytes); + if (num_bytes > 0 && num_bytes < mask_info->mask_len) + memcpy(buf + sizeof(header), mask_info->ptr, num_bytes); + else { + pr_err("diag: num_bytes(%d) is not satisfying length condition\n", + num_bytes); + goto err; + } write_len += num_bytes; break; default: @@ -359,6 +367,7 @@ static void diag_send_msg_mask_update(uint8_t peripheral, int first, int last) } else { mask_info->update_buf = temp; mask_info->update_buf_len = temp_len; + buf = temp; pr_debug("diag: In %s, successfully reallocated msg_mask update buffer to len: %d\n", __func__, mask_info->update_buf_len); } |