svn commit: r298727 - stable/9/lib/libc/regex

Pedro F. Giffuni pfg at FreeBSD.org
Thu Apr 28 01:12:40 UTC 2016


Author: pfg
Date: Thu Apr 28 01:12:38 2016
New Revision: 298727
URL: https://svnweb.freebsd.org/changeset/base/298727

Log:
  MFC r298521;
  regex: prevent two improbable signed integer overflows.
  
  In matcher() we used an integer to index nsub of type size_t.
  In print() we used an integer to index nstates of type sopno,
  typedef'd long.
  In both cases the indexes never take negative values.
  
  Match the types to avoid any error.

Modified:
  stable/9/lib/libc/regex/engine.c
Directory Properties:
  stable/9/lib/libc/   (props changed)

Modified: stable/9/lib/libc/regex/engine.c
==============================================================================
--- stable/9/lib/libc/regex/engine.c	Thu Apr 28 01:11:25 2016	(r298726)
+++ stable/9/lib/libc/regex/engine.c	Thu Apr 28 01:12:38 2016	(r298727)
@@ -154,7 +154,7 @@ matcher(struct re_guts *g,
 	int eflags)
 {
 	const char *endp;
-	int i;
+	size_t i;
 	struct match mv;
 	struct match *m = &mv;
 	const char *dp;
@@ -1108,7 +1108,7 @@ print(struct match *m,
 	FILE *d)
 {
 	struct re_guts *g = m->g;
-	int i;
+	sopno i;
 	int first = 1;
 
 	if (!(m->eflags&REG_TRACE))


More information about the svn-src-all mailing list