From 264b375506121d3a9268552b4f54c77faf171e6a Mon Sep 17 00:00:00 2001 From: Andrei Zeliankou Date: Wed, 31 Jan 2024 15:21:03 +0000 Subject: Avoiding arithmetic ops with NULL pointer in nxt_port_mmap_get Can be reproduced by test/test_settings.py::test_settings_send_timeout with enabled UndefinedBehaviorSanitizer. Reviewed-by: Andrew Clayton --- src/nxt_port_memory.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/nxt_port_memory.c b/src/nxt_port_memory.c index 0a4a6c53..be7688e2 100644 --- a/src/nxt_port_memory.c +++ b/src/nxt_port_memory.c @@ -454,6 +454,10 @@ nxt_port_mmap_get(nxt_task_t *task, nxt_port_mmaps_t *mmaps, nxt_chunk_id_t *c, nxt_thread_mutex_lock(&mmaps->mutex); + if (nxt_slow_path(mmaps->elts == NULL)) { + goto end; + } + end_port_mmap = mmaps->elts + mmaps->size; for (port_mmap = mmaps->elts; @@ -500,6 +504,8 @@ nxt_port_mmap_get(nxt_task_t *task, nxt_port_mmaps_t *mmaps, nxt_chunk_id_t *c, /* TODO introduce port_mmap limit and release wait. */ +end: + *c = 0; mmap_handler = nxt_port_new_port_mmap(task, mmaps, tracking, n); -- cgit