]> git.saurik.com Git - android/aapt.git/commitdiff
Fix up getAttributeFlags() function
authorBen Gruver <bgruv@google.com>
Wed, 7 Mar 2012 03:26:22 +0000 (19:26 -0800)
committerBen Gruver <bgruv@google.com>
Wed, 7 Mar 2012 18:49:55 +0000 (10:49 -0800)
In addition to a couple of minor clean-up items, this fixes an issue that can
rarely cause incorrect parsing of attribute flag values, when there is a '|'
character in the few bytes past the end of the attribute value being parsed.

Change-Id: I6050b1c2db60720c7c0ab7df9eba8cfc629b320e

ResourceTable.cpp

index 0c0b2ea0765f6e330d776ed05f9142308b5bab8e..df6abe85872a01219429853ff66ba0eb858042f1 100644 (file)
@@ -2304,10 +2304,8 @@ bool ResourceTable::getAttributeFlags(
 
         const char16_t* end = name + nameLen;
         const char16_t* pos = name;
-        bool failed = false;
-        while (pos < end && !failed) {
+        while (pos < end) {
             const char16_t* start = pos;
-            end++;
             while (pos < end && *pos != '|') {
                 pos++;
             }
@@ -2333,9 +2331,7 @@ bool ResourceTable::getAttributeFlags(
                 // Didn't find this flag identifier.
                 return false;
             }
-            if (pos < end) {
-                pos++;
-            }
+            pos++;
         }
 
         return true;