Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/usr.bin/m4 PR/52638: matthew green: missing argument check c...



details:   https://anonhg.NetBSD.org/src/rev/712ee20efb3d
branches:  trunk
changeset: 827288:712ee20efb3d
user:      christos <christos%NetBSD.org@localhost>
date:      Sun Oct 22 23:01:34 2017 +0000

description:
PR/52638: matthew green: missing argument check causes m4 to core in ifelse()

diffstat:

 usr.bin/m4/eval.c |  10 ++++++----
 1 files changed, 6 insertions(+), 4 deletions(-)

diffs (33 lines):

diff -r 123b2dedfec1 -r 712ee20efb3d usr.bin/m4/eval.c
--- a/usr.bin/m4/eval.c Sun Oct 22 20:35:32 2017 +0000
+++ b/usr.bin/m4/eval.c Sun Oct 22 23:01:34 2017 +0000
@@ -1,5 +1,5 @@
 /*     $OpenBSD: eval.c,v 1.66 2008/08/21 21:01:47 espie Exp $ */
-/*     $NetBSD: eval.c,v 1.24 2016/01/16 16:56:21 christos Exp $       */
+/*     $NetBSD: eval.c,v 1.25 2017/10/22 23:01:34 christos Exp $       */
 
 /*
  * Copyright (c) 1989, 1993
@@ -42,7 +42,7 @@
 #include "nbtool_config.h"
 #endif
 #include <sys/cdefs.h>
-__RCSID("$NetBSD: eval.c,v 1.24 2016/01/16 16:56:21 christos Exp $");
+__RCSID("$NetBSD: eval.c,v 1.25 2017/10/22 23:01:34 christos Exp $");
 
 #include <sys/types.h>
 #include <ctype.h>
@@ -698,9 +698,11 @@
 doifelse(const char *argv[], int argc)
 {
        cycle {
-               if (STREQ(argv[2], argv[3]))
+               if (argc < 5)
+                       m4errx(1, "wrong number of args for ifelse");
+               if (STREQ(argv[2], argv[3])) {
                        pbstr(argv[4]);
-               else if (argc == 6)
+               } else if (argc == 6)
                        pbstr(argv[5]);
                else if (argc > 6) {
                        argv += 3;



Home | Main Index | Thread Index | Old Index