From f878216982d0d326ac8397a1a436b2fd60ed54e2 Mon Sep 17 00:00:00 2001
From: Norihiro Tanaka <noritnk@kcn.ne.jp>
Date: Sat, 15 Nov 2014 22:21:34 -0800
Subject: [PATCH] dfa: avoid undefined behavior

* src/dfa.c (dfassbuild): Don't call memcpy with a second
argument of NULL, even when the size (3rd argument) is 0.
---
 src/dfa.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/src/dfa.c b/src/dfa.c
index e0fc120..65862e8 100644
--- a/src/dfa.c
+++ b/src/dfa.c
@@ -3660,8 +3660,11 @@ dfassbuild (struct dfa *d)
   sup->musts = NULL;

   sup->charclasses = xnmalloc (sup->calloc, sizeof *sup->charclasses);
-  memcpy (sup->charclasses, d->charclasses,
-          d->cindex * sizeof *sup->charclasses);
+  if (d->cindex)
+    {
+      memcpy (sup->charclasses, d->charclasses,
+              d->cindex * sizeof *sup->charclasses);
+    }

   sup->tokens = xnmalloc (d->tindex, 2 * sizeof *sup->tokens);
   sup->talloc = d->tindex * 2;
-- 
2.1.2

