From f6005c3343b5fd79de670947b4213c31a9cdcb37 Mon Sep 17 00:00:00 2001 From: "Enrico Weigelt, metux IT consult" Date: Tue, 6 May 2025 16:28:19 +0200 Subject: [PATCH] (!1965) 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 d8e730972..ef0bd4d64 100644 --- a/record/record.c +++ b/record/record.c @@ -887,7 +887,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);