diff options
author | Steven Moreland <smoreland@google.com> | 2017-09-18 16:04:14 -0700 |
---|---|---|
committer | Steven Moreland <smoreland@google.com> | 2017-09-18 16:47:45 -0700 |
commit | f9fe21230999316a208a7d6e586a73cddb2fed4d (patch) | |
tree | 0bcd0887639901eb54b94a7a1e3e028d1b1c1db0 /utils | |
parent | a93873845c97475ad292b9cad7ffbb30b632bf65 (diff) | |
download | hidl-f9fe21230999316a208a7d6e586a73cddb2fed4d.tar.gz |
Fix infinte loop in StringHelper trims.
Empty prefixes caused an infinite loop in StringHelper.
Test: libhidl-gen-utils_test
Change-Id: I0d17d7a13d02dd212b0a98a3225379aa845be047
Diffstat (limited to 'utils')
-rw-r--r-- | utils/StringHelper.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/utils/StringHelper.cpp b/utils/StringHelper.cpp index 3718d535..aae9b5a0 100644 --- a/utils/StringHelper.cpp +++ b/utils/StringHelper.cpp @@ -184,6 +184,10 @@ std::string StringHelper::LTrim(const std::string &in, const std::string &prefix } std::string StringHelper::RTrimAll(const std::string &in, const std::string &suffix) { + if (suffix.empty()) { + return in; + } + std::string copy(in); while (EndsWith(copy, suffix)) { copy = copy.substr(0, copy.size() - suffix.size()); @@ -193,6 +197,10 @@ std::string StringHelper::RTrimAll(const std::string &in, const std::string &suf } std::string StringHelper::LTrimAll(const std::string &in, const std::string &prefix) { + if (prefix.empty()) { + return in; + } + std::string copy(in); while (StartsWith(copy, prefix)) { copy = copy.substr(prefix.size()); |