summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/libcamera/ipa_proxy.cpp15
1 files changed, 5 insertions, 10 deletions
diff --git a/src/libcamera/ipa_proxy.cpp b/src/libcamera/ipa_proxy.cpp
index 5a3d2f1c..c7347c88 100644
--- a/src/libcamera/ipa_proxy.cpp
+++ b/src/libcamera/ipa_proxy.cpp
@@ -83,21 +83,16 @@ std::string IPAProxy::resolvePath(const std::string &file) const
/* No exec target in install directory; check env variable. */
const char *execPaths = utils::secure_getenv("LIBCAMERA_IPA_PROXY_PATH");
- while (execPaths) {
- const char *delim = strchrnul(execPaths, ':');
- size_t count = delim - execPaths;
+ if (execPaths) {
+ for (const auto &dir : utils::split(execPaths, ":")) {
+ if (dir.empty())
+ continue;
- if (count) {
- std::string proxyPath(execPaths, count);
+ std::string proxyPath = dir;
proxyPath += proxyFile;
if (!access(proxyPath.c_str(), X_OK))
return proxyPath;
}
-
- if (*delim == '\0')
- break;
-
- execPaths += count + 1;
}
return std::string();