Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 2 Oct 2019 06:15:30 +0000 (UTC)
From:      Alexander Kabaev <kan@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r352953 - in head/usr.bin: killall split
Message-ID:  <201910020615.x926FUJj091147@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: kan
Date: Wed Oct  2 06:15:30 2019
New Revision: 352953
URL: https://svnweb.freebsd.org/changeset/base/352953

Log:
  Convert pnmatch to single element array in regexec calls
  
  The regexec function is declared as taking an array of regmatch_t
  elements, and passing in the pointer to singleton element, while
  correct, triggers a Coverity warning. Convert the singleton into
  an array of one to silence the warning.
  
  Reported by:	Coverity
  Coverity CID:	1009732, 1009733
  MFC after:	2 weeks

Modified:
  head/usr.bin/killall/killall.c
  head/usr.bin/split/split.c

Modified: head/usr.bin/killall/killall.c
==============================================================================
--- head/usr.bin/killall/killall.c	Wed Oct  2 02:37:34 2019	(r352952)
+++ head/usr.bin/killall/killall.c	Wed Oct  2 06:15:30 2019	(r352953)
@@ -98,7 +98,7 @@ main(int ac, char **av)
 	struct stat	sb;
 	struct passwd	*pw;
 	regex_t		rgx;
-	regmatch_t	pmatch;
+	regmatch_t	pmatch[1];
 	int		i, j, ch;
 	char		buf[256];
 	char		first;
@@ -361,9 +361,9 @@ main(int ac, char **av)
 				}
 			}
 			if (mflag) {
-				pmatch.rm_so = 0;
-				pmatch.rm_eo = strlen(thiscmd);
-				if (regexec(&rgx, thiscmd, 0, &pmatch,
+				pmatch[0].rm_so = 0;
+				pmatch[0].rm_eo = strlen(thiscmd);
+				if (regexec(&rgx, thiscmd, 0, pmatch,
 				    REG_STARTEND) != 0)
 					matched = 0;
 				regfree(&rgx);
@@ -387,9 +387,9 @@ main(int ac, char **av)
 				}
 			}
 			if (mflag) {
-				pmatch.rm_so = 0;
-				pmatch.rm_eo = strlen(thiscmd);
-				if (regexec(&rgx, thiscmd, 0, &pmatch,
+				pmatch[0].rm_so = 0;
+				pmatch[0].rm_eo = strlen(thiscmd);
+				if (regexec(&rgx, thiscmd, 0, pmatch,
 				    REG_STARTEND) == 0)
 					matched = 1;
 				regfree(&rgx);

Modified: head/usr.bin/split/split.c
==============================================================================
--- head/usr.bin/split/split.c	Wed Oct  2 02:37:34 2019	(r352952)
+++ head/usr.bin/split/split.c	Wed Oct  2 06:15:30 2019	(r352953)
@@ -281,11 +281,11 @@ split2(void)
 
 		/* Check if we need to start a new file */
 		if (pflag) {
-			regmatch_t pmatch;
+			regmatch_t pmatch[1];
 
-			pmatch.rm_so = 0;
-			pmatch.rm_eo = len - 1;
-			if (regexec(&rgx, bfr, 0, &pmatch, REG_STARTEND) == 0)
+			pmatch[0].rm_so = 0;
+			pmatch[0].rm_eo = len - 1;
+			if (regexec(&rgx, bfr, 0, pmatch, REG_STARTEND) == 0)
 				newfile();
 		} else if (lcnt++ == numlines) {
 			newfile();



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201910020615.x926FUJj091147>