Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 4 Apr 2011 09:25:28 +0000 (UTC)
From:      Sergey Kandaurov <pluknet@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r220319 - head/lib/libdevstat
Message-ID:  <201104040925.p349PSt0077619@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: pluknet
Date: Mon Apr  4 09:25:27 2011
New Revision: 220319
URL: http://svn.freebsd.org/changeset/base/220319

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

Modified:
  head/lib/libdevstat/devstat.c

Modified: head/lib/libdevstat/devstat.c
==============================================================================
--- head/lib/libdevstat/devstat.c	Mon Apr  4 08:04:32 2011	(r220318)
+++ head/lib/libdevstat/devstat.c	Mon Apr  4 09:25:27 2011	(r220319)
@@ -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?201104040925.p349PSt0077619>