aboutsummaryrefslogtreecommitdiff
path: root/utils
diff options
context:
space:
mode:
authorSteven Moreland <smoreland@google.com>2017-09-18 16:04:14 -0700
committerSteven Moreland <smoreland@google.com>2017-09-18 16:47:45 -0700
commitf9fe21230999316a208a7d6e586a73cddb2fed4d (patch)
tree0bcd0887639901eb54b94a7a1e3e028d1b1c1db0 /utils
parenta93873845c97475ad292b9cad7ffbb30b632bf65 (diff)
downloadhidl-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.cpp8
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());