From 34e445674d5fe7b94b702449ac40d4c0a3ca9d12 Mon Sep 17 00:00:00 2001 From: Nick Wellnhofer Date: Wed, 31 May 2017 16:48:27 +0200 Subject: Fix undefined behavior in xmlRegExecPushStringInternal It's stupid, but the behavior of memcpy(NULL, NULL, 0) is undefined. --- xmlregexp.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'xmlregexp.c') diff --git a/xmlregexp.c b/xmlregexp.c index ca3b4f46..7dc6eeaf 100644 --- a/xmlregexp.c +++ b/xmlregexp.c @@ -4089,8 +4089,9 @@ rollback: xmlFree(exec->errString); exec->errString = xmlStrdup(value); exec->errState = exec->state; - memcpy(exec->errCounts, exec->counts, - exec->comp->nbCounters * sizeof(int)); + if (exec->comp->nbCounters) + memcpy(exec->errCounts, exec->counts, + exec->comp->nbCounters * sizeof(int)); } /* -- cgit v1.2.1