From f1e7e52aa3d66d22275c4b8289f73d2c524d0e46 Mon Sep 17 00:00:00 2001 From: "Enrico Weigelt, metux IT consult" Date: Tue, 6 May 2025 16:28:19 +0200 Subject: [PATCH] record: protect from NULL pointers MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Even though the situation probably never happens, but better being extra cautious, just in case. | ../record/set.c: In function ‘IntervalListCreateSet’: | ../record/set.c:364:5: warning: use of NULL ‘stackIntervals’ where non-null expected [CWE-476] [-Wanalyzer-null-argument] | 364 | memcpy(&prls[1], stackIntervals, nIntervals * sizeof(RecordSetInterval)); | | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Signed-off-by: Enrico Weigelt, metux IT consult --- record/record.c | 3 ++- record/set.c | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/record/record.c b/record/record.c index 6c28bb228..a345798bb 100644 --- a/record/record.c +++ b/record/record.c @@ -888,7 +888,8 @@ RecordInstallHooks(RecordClientsAndProtocolPtr pRCAP, XID oneclient) unsigned int j; for (j = interval.first; j <= interval.last; j++) - pClient->requestVector[j] = RecordARequest; + if (pClient) + pClient->requestVector[j] = RecordARequest; } } } diff --git a/record/set.c b/record/set.c index f071a4b3f..e623b7c69 100644 --- a/record/set.c +++ b/record/set.c @@ -361,7 +361,8 @@ IntervalListCreateSet(RecordSetInterval * pIntervals, int nIntervals, goto bailout; prls->baseSet.ops = &IntervalListSetOperations; } - memcpy(&prls[1], stackIntervals, nIntervals * sizeof(RecordSetInterval)); + if (stackIntervals) + memcpy(&prls[1], stackIntervals, nIntervals * sizeof(RecordSetInterval)); prls->nIntervals = nIntervals; bailout: free(stackIntervals);