]> git.cameronkatri.com Git - mandoc.git/commitdiff
Bugfix in roff_setstrn():
authorIngo Schwarze <schwarze@openbsd.org>
Sun, 29 Jun 2014 21:20:31 +0000 (21:20 +0000)
committerIngo Schwarze <schwarze@openbsd.org>
Sun, 29 Jun 2014 21:20:31 +0000 (21:20 +0000)
Do not call strcmp() on an array of char that might not be NUL-terminated.

roff.c

diff --git a/roff.c b/roff.c
index 46ed2d7c9bd895c862eb06c5e5447e487c22d1e5..30e923098edf90b9cf067b56a2690f2d8a8554d0 100644 (file)
--- a/roff.c
+++ b/roff.c
@@ -1,4 +1,4 @@
-/*     $Id: roff.c,v 1.210 2014/06/25 00:20:19 schwarze Exp $ */
+/*     $Id: roff.c,v 1.211 2014/06/29 21:20:31 schwarze Exp $ */
 /*
  * Copyright (c) 2010, 2011, 2012 Kristaps Dzonsons <kristaps@bsd.lv>
  * Copyright (c) 2010-2014 Ingo Schwarze <schwarze@openbsd.org>
 /*
  * Copyright (c) 2010, 2011, 2012 Kristaps Dzonsons <kristaps@bsd.lv>
  * Copyright (c) 2010-2014 Ingo Schwarze <schwarze@openbsd.org>
@@ -2068,7 +2068,8 @@ roff_setstrn(struct roffkv **r, const char *name, size_t namesz,
        /* Search for an existing string with the same name. */
        n = *r;
 
        /* Search for an existing string with the same name. */
        n = *r;
 
-       while (n && strcmp(name, n->key.p))
+       while (n && (namesz != n->key.sz ||
+                       strncmp(n->key.p, name, namesz)))
                n = n->next;
 
        if (NULL == n) {
                n = n->next;
 
        if (NULL == n) {