]> git.cameronkatri.com Git - mandoc.git/commitdiff
Make sure that -l always causes -w to be ignored, as documented
authorIngo Schwarze <schwarze@openbsd.org>
Thu, 6 Feb 2020 19:41:40 +0000 (19:41 +0000)
committerIngo Schwarze <schwarze@openbsd.org>
Thu, 6 Feb 2020 19:41:40 +0000 (19:41 +0000)
in the man(1) manual page.  This bugfix is needed to prevent
the command "man -lw" from dereferencing a NULL pointer.

main.c

diff --git a/main.c b/main.c
index 61fee88f8b176b5d391c3f56c4efc363f35a8e2b..c74a3a83978374f82a606336b010374c78a3e859 100644 (file)
--- a/main.c
+++ b/main.c
@@ -1,7 +1,7 @@
-/*     $Id: main.c,v 1.341 2020/01/20 10:37:15 schwarze Exp $ */
+/*     $Id: main.c,v 1.342 2020/02/06 19:41:40 schwarze Exp $ */
 /*
  * Copyright (c) 2008-2012 Kristaps Dzonsons <kristaps@bsd.lv>
- * Copyright (c) 2010-2012, 2014-2019 Ingo Schwarze <schwarze@openbsd.org>
+ * Copyright (c) 2010-2012, 2014-2020 Ingo Schwarze <schwarze@openbsd.org>
  * Copyright (c) 2010 Joerg Sonnenberger <joerg@netbsd.org>
  *
  * Permission to use, copy, modify, and distribute this software for any
@@ -326,7 +326,8 @@ main(int argc, char *argv[])
 
        /* Postprocess options. */
 
-       if (outmode == OUTMODE_DEF) {
+       switch (outmode) {
+       case OUTMODE_DEF:
                switch (search.argmode) {
                case ARG_FILE:
                        outmode = OUTMODE_ALL;
@@ -339,6 +340,16 @@ main(int argc, char *argv[])
                        outmode = OUTMODE_LST;
                        break;
                }
+               break;
+       case OUTMODE_FLN:
+               if (search.argmode == ARG_FILE)
+                       outmode = OUTMODE_ALL;
+               break;
+       case OUTMODE_ALL:
+               break;
+       case OUTMODE_LST:
+       case OUTMODE_ONE:
+               abort();
        }
 
        if (oarg != NULL) {