From fa0b552d721bf149f0260c57966e342fb4705b2c Mon Sep 17 00:00:00 2001 From: Nick Chung Date: Thu, 27 Jul 2023 05:01:53 +0000 Subject: LWIS: Check dma_vaddr before accessing buffer 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 --- lwis_debug.c | 7 +++++++ 1 file changed, 7 insertions(+) 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++, -- cgit v1.2.3