Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 18 Apr 2011 08:53:23 +0000 (UTC)
From:      Sergey Kandaurov <pluknet@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
Subject:   svn commit: r220766 - stable/7/lib/libdevstat
Message-ID:  <201104180853.p3I8rN58064657@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: pluknet
Date: Mon Apr 18 08:53:22 2011
New Revision: 220766
URL: http://svn.freebsd.org/changeset/base/220766

Log:
  MFC r220319:
  
   Do not increment num_args if strsep(3) returned an empty field.
   That fixes devstat_buildmatch(3) crashes with certain strings.
  
  Reported by:	arundel

Modified:
  stable/7/lib/libdevstat/devstat.c
Directory Properties:
  stable/7/lib/libdevstat/   (props changed)

Modified: stable/7/lib/libdevstat/devstat.c
==============================================================================
--- stable/7/lib/libdevstat/devstat.c	Mon Apr 18 08:49:25 2011	(r220765)
+++ stable/7/lib/libdevstat/devstat.c	Mon Apr 18 08:53:22 2011	(r220766)
@@ -1014,11 +1014,12 @@ devstat_buildmatch(char *match_str, stru
 	 * Break the (comma delimited) input string out into separate strings.
 	 */
 	for (tempstr = tstr, num_args  = 0; 
-	     (*tempstr = strsep(&match_str, ",")) != NULL && (num_args < 5); 
-	     num_args++)
-		if (**tempstr != '\0')
+	     (*tempstr = strsep(&match_str, ",")) != NULL && (num_args < 5);)
+		if (**tempstr != '\0') {
+			num_args++;
 			if (++tempstr >= &tstr[5])
 				break;
+		}
 
 	/* The user gave us too many type arguments */
 	if (num_args > 3) {



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