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++;