From c947e87e46835769accb1ff1a7588bfe558267f0 Mon Sep 17 00:00:00 2001 From: yidong0635 Date: Thu, 20 Jun 2019 09:11:27 -0400 Subject: [PATCH] nvme/deallocated_value: Fix scanbuild error on fedora30 with GCC9. Scanbuild error on fedora30 reports: warning: Array access (via field 'write_buf') results in a null pointer dereference if (context->write_buf[i]) { In deallocated_value.c, cleanup function be used at many places to deal with failed cases even context->write_buf is NULL, so add context->write_buf pointer check before array data. I think context->read_buf is the same. This is related to issue #822. Change-Id: I33c685fd732da820c1dfc861eb991b92b41caa29 Signed-off-by: yidong0635 Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/458736 Tested-by: SPDK CI Jenkins Reviewed-by: Shuhei Matsumoto Reviewed-by: Ben Walker --- test/nvme/deallocated_value/deallocated_value.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/nvme/deallocated_value/deallocated_value.c b/test/nvme/deallocated_value/deallocated_value.c index 35dca395b..d76066988 100644 --- a/test/nvme/deallocated_value/deallocated_value.c +++ b/test/nvme/deallocated_value/deallocated_value.c @@ -395,12 +395,12 @@ cleanup(struct deallocate_context *context) ns_entry = next; } for (i = 0; i < NUM_BLOCKS; i++) { - if (context->write_buf[i]) { + if (context->write_buf && context->write_buf[i]) { spdk_dma_free(context->write_buf[i]); } else { break; } - if (context->read_buf[i]) { + if (context->read_buf && context->read_buf[i]) { spdk_dma_free(context->read_buf[i]); } else { break;