Module Name:    src
Committed By:   christos
Date:           Tue May 12 14:59:35 UTC 2015

Modified Files:
        src/common/lib/libprop: prop_object.c

Log Message:
Now that _PROP_ISSPACE does not include the EOF check, put the check for
EOF inside the loop. Also fix another unbounded loop that did not check for
EOF. From Mateusz Kocielski
XXX: pullup-7


To generate a diff of this commit:
cvs rdiff -u -r1.29 -r1.30 src/common/lib/libprop/prop_object.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/common/lib/libprop/prop_object.c
diff -u src/common/lib/libprop/prop_object.c:1.29 src/common/lib/libprop/prop_object.c:1.30
--- src/common/lib/libprop/prop_object.c:1.29	Fri Oct 18 14:26:20 2013
+++ src/common/lib/libprop/prop_object.c	Tue May 12 10:59:35 2015
@@ -1,4 +1,4 @@
-/*	$NetBSD: prop_object.c,v 1.29 2013/10/18 18:26:20 martin Exp $	*/
+/*	$NetBSD: prop_object.c,v 1.30 2015/05/12 14:59:35 christos Exp $	*/
 
 /*-
  * Copyright (c) 2006, 2007 The NetBSD Foundation, Inc.
@@ -416,10 +416,11 @@ _prop_object_internalize_find_tag(struct
 
 	ctx->poic_tagname = cp;
 
-	while (!_PROP_ISSPACE(*cp) && *cp != '/' && *cp != '>')
+	while (!_PROP_ISSPACE(*cp) && *cp != '/' && *cp != '>') {
+		if (_PROP_EOF(*cp))
+			return (false);
 		cp++;
-	if (_PROP_EOF(*cp))
-		return (false);
+	}
 
 	ctx->poic_tagname_len = cp - ctx->poic_tagname;
 
@@ -462,10 +463,11 @@ _prop_object_internalize_find_tag(struct
 
 	ctx->poic_tagattr = cp;
 
-	while (!_PROP_ISSPACE(*cp) && *cp != '=')
+	while (!_PROP_ISSPACE(*cp) && *cp != '=') {
+		if (_PROP_EOF(*cp))
+			return (false);
 		cp++;
-	if (_PROP_EOF(*cp))
-		return (false);
+	}
 
 	ctx->poic_tagattr_len = cp - ctx->poic_tagattr;
 	
@@ -477,10 +479,11 @@ _prop_object_internalize_find_tag(struct
 		return (false);
 	
 	ctx->poic_tagattrval = cp;
-	while (*cp != '\"')
+	while (*cp != '\"') {
+		if (_PROP_EOF(*cp))
+			return (false);
 		cp++;
-	if (_PROP_EOF(*cp))
-		return (false);
+	}
 	ctx->poic_tagattrval_len = cp - ctx->poic_tagattrval;
 	
 	cp++;

Reply via email to