From fb8d0fc608db0b64f5bc589d02ba921c5077b6ff Mon Sep 17 00:00:00 2001 From: Levi Neely <141506390+lneely@users.noreply.github.com> Date: Tue, 3 Mar 2026 12:41:27 +0100 Subject: [PATCH] Fix unchecked malloc in papi_result_async (#307) reader->data = malloc(reader->respsize) at line 462 is not checked for NULL before goto again continues the loop and dereferences it. Add NULL check and return ASYNC_RES_READY with result=NULL on failure. Fixes GH #238 Co-authored-by: Levi Neely --- pclsync/papi.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/pclsync/papi.c b/pclsync/papi.c index 80cacc9..e466fa6 100644 --- a/pclsync/papi.c +++ b/pclsync/papi.c @@ -460,6 +460,11 @@ again: reader->bytesread = 0; reader->bytestoread = reader->respsize; reader->data = (unsigned char *)malloc(reader->respsize); + if (!reader->data) { + reader->result = NULL; + papi_rdr_alloc(reader); + return ASYNC_RES_READY; + } goto again; } else { pdbg_assert(reader->state == 1);