summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Chung <nickchung@google.com>2023-07-27 05:01:53 +0000
committerNick Chung <nickchung@google.com>2023-07-28 07:09:59 +0000
commitfa0b552d721bf149f0260c57966e342fb4705b2c (patch)
treee40b4f5711ff8c90feca0e23388a3cf75a57ab90
parent8969559e7905886f262cb0562fd792a8b58137f2 (diff)
downloadlwis-fa0b552d721bf149f0260c57966e342fb4705b2c.tar.gz
Prevent ramdump by making sure that the dma_vaddr is a valid pointer before accessing the buffer. Bug: 293150690 Test: CTS, GCA Change-Id: Ib6adc8bc726cfff551eaec7dc0e9d493269861a2 Signed-off-by: Nick Chung <nickchung@google.com>
-rw-r--r--lwis_debug.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/lwis_debug.c b/lwis_debug.c
index 72c8fec..3678dc5 100644
--- a/lwis_debug.c
+++ b/lwis_debug.c
@@ -160,6 +160,13 @@ static void list_enrolled_buffers(struct lwis_client *client, char *k_buf, size_
hash_for_each (client->enrolled_buffers, i, enrollment_list, node) {
list_for_each (it_enrollment, &enrollment_list->list) {
buffer = list_entry(it_enrollment, struct lwis_enrolled_buffer, list_node);
+ if (IS_ERR_OR_NULL((void *)buffer->info.dma_vaddr)) {
+ scnprintf(tmp_buf, sizeof(tmp_buf),
+ "Enrolled buffers: dma_vaddr %pad is invalid\n",
+ &buffer->info.dma_vaddr);
+ strlcat(k_buf, tmp_buf, k_buf_size);
+ continue;
+ }
end_dma_vaddr = buffer->info.dma_vaddr + (buffer->dma_buf->size - 1);
scnprintf(tmp_buf, sizeof(tmp_buf),
"[%2d] FD: %d Mode: %s%s Addr:[%pad ~ %pad] Size: %zu\n", idx++,