Dict: fix out-of-bounds for long terms
authorAdam Dickmeiss <adam@indexdata.dk>
Thu, 31 May 2012 13:07:34 +0000 (15:07 +0200)
committerAdam Dickmeiss <adam@indexdata.dk>
Thu, 31 May 2012 13:07:34 +0000 (15:07 +0200)
Only happened due to increased IT_MAX_WORD, so nobody would be
affected by this problem before.

dict/lookgrep.c

index ebd54b7..f480029 100644 (file)
@@ -412,7 +412,7 @@ int dict_lookup_grep(Dict dict, const char *pattern, int range, void *client,
 
     mc = mk_MatchContext(dfa, range);
 
 
     mc = mk_MatchContext(dfa, range);
 
-    Rj = (MatchWord *) xcalloc((MAX_LENGTH+1) * mc->n, sizeof(*Rj));
+    Rj = (MatchWord *) xcalloc((MAX_LENGTH+2) * mc->fact, sizeof(*Rj));
 
     set_bit (mc, Rj, 0, 0);
     for (d = 1; d<=mc->range; d++)
 
     set_bit (mc, Rj, 0, 0);
     for (d = 1; d<=mc->range; d++)