OSDN Git Service

Avoid infinite loops in the RegularExpression::subst() function when the length of...
authorTakashi Sawanaka <sdottaka@users.sourceforge.net>
Sun, 27 Aug 2023 12:06:55 +0000 (21:06 +0900)
committerTakashi Sawanaka <sdottaka@users.sourceforge.net>
Sun, 27 Aug 2023 12:06:55 +0000 (21:06 +0900)
Externals/poco/Foundation/src/RegularExpression.cpp

index ef6a5e8..3a3c336 100644 (file)
@@ -262,7 +262,7 @@ std::string::size_type RegularExpression::substOne(std::string& subject, std::st
                                }
                                else result += *it++;
                        }
-                       pos = ovec[1];
+                       pos = (ovec[1] > ovec[0]) ? ovec[1] : ovec[1] + 1;
                        rp = result.length();
                }
                else result += subject[pos++];