From 89db6ba1858a3f1fa9ced864bcd58b3c35580929 Mon Sep 17 00:00:00 2001 From: schwarze Date: Wed, 1 Aug 2018 16:00:54 +0000 Subject: [PATCH] Fix an off-by-one string read access that could happen if an empty string argument preceded a string argument beginning with "--". Found by Leah Neukirchen with -Wpointer-compare. --- usr.bin/mandoc/mdoc_validate.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/usr.bin/mandoc/mdoc_validate.c b/usr.bin/mandoc/mdoc_validate.c index c2e1b72e3c6..cbc6282d2eb 100644 --- a/usr.bin/mandoc/mdoc_validate.c +++ b/usr.bin/mandoc/mdoc_validate.c @@ -1,4 +1,4 @@ -/* $OpenBSD: mdoc_validate.c,v 1.274 2018/08/01 13:44:15 schwarze Exp $ */ +/* $OpenBSD: mdoc_validate.c,v 1.275 2018/08/01 16:00:54 schwarze Exp $ */ /* * Copyright (c) 2008-2012 Kristaps Dzonsons * Copyright (c) 2010-2018 Ingo Schwarze @@ -435,14 +435,13 @@ check_text_em(struct roff_man *mdoc, int ln, int pos, char *p) isalpha((unsigned char)cp[-3]) : np != NULL && np->type == ROFFT_TEXT && - np->string != '\0' && + *np->string != '\0' && isalpha((unsigned char)np->string[ strlen(np->string) - 1])) || (cp[1] != '\0' && cp[2] != '\0' ? isalpha((unsigned char)cp[2]) : nn != NULL && nn->type == ROFFT_TEXT && - nn->string != '\0' && isalpha((unsigned char)*nn->string))) { mandoc_msg(MANDOCERR_DASHDASH, mdoc->parse, ln, pos + (int)(cp - p) - 1, NULL); -- 2.20.1