]> git.ipfire.org Git - thirdparty/ccache.git/commitdiff
refactor: Avoid changing loop variable in body of for loop
authorJoel Rosdahl <joel@rosdahl.net>
Wed, 9 Nov 2022 20:06:05 +0000 (21:06 +0100)
committerJoel Rosdahl <joel@rosdahl.net>
Thu, 10 Nov 2022 12:20:26 +0000 (13:20 +0100)
This is to please CodeQL's "For loop variable changed in body" check.

src/Util.cpp
src/util/string.cpp

index bdcc9117df2a60818c422afb35c8ae64ccffa1cf..eaac8b9536503f936a16ddb7e10ec6306e423de6 100644 (file)
@@ -438,7 +438,8 @@ expand_environment_variables(const std::string& str)
 {
   std::string result;
   const char* left = str.c_str();
-  for (const char* right = left; *right; ++right) {
+  const char* right = left;
+  while (*right) {
     if (*right == '$') {
       result.append(left, right - left);
 
@@ -471,6 +472,7 @@ expand_environment_variables(const std::string& str)
         left = right + 1;
       }
     }
+    ++right;
   }
   result += left;
   return result;
index 7f17841590044eb2db12fd477ab6b9acec640b9a..3a03a0becfc1ef0a3bb89eca4b6548e351605f9f 100644 (file)
@@ -134,7 +134,8 @@ percent_decode(std::string_view string)
 
   std::string result;
   result.reserve(string.size());
-  for (size_t i = 0; i < string.size(); ++i) {
+  size_t i = 0;
+  while (i < string.size()) {
     if (string[i] != '%') {
       result += string[i];
     } else if (i + 2 >= string.size() || !std::isxdigit(string[i + 1])
@@ -147,6 +148,7 @@ percent_decode(std::string_view string)
       result += ch;
       i += 2;
     }
+    ++i;
   }
 
   return result;