[libcamera-devel] [PATCH] libcamera: ipa_manager: Fix handling of unset LIBCAMERA_IPA_MODULE_PATH
Niklas Söderlund
niklas.soderlund at ragnatech.se
Mon Jun 10 15:45:31 CEST 2019
If the environment variable LIBCAMERA_IPA_MODULE_PATH is not set
utils::secure_getenv() will return a nullptr. Assigning a nullptr to a
std::string is not valid and results in a crash,
terminate called after throwing an instance of 'std::logic_error'
what(): basic_string::_M_construct null not valid
Fix this by first checking if the char array return from
utils::secure_getenv() is empty before creating a std::string from it.
Signed-off-by: Niklas Söderlund <niklas.soderlund at ragnatech.se>
---
src/libcamera/ipa_manager.cpp | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/src/libcamera/ipa_manager.cpp b/src/libcamera/ipa_manager.cpp
index f689aa69b7284092..7ea7a8cbff5f15a0 100644
--- a/src/libcamera/ipa_manager.cpp
+++ b/src/libcamera/ipa_manager.cpp
@@ -34,10 +34,11 @@ IPAManager::IPAManager()
{
addDir(IPA_MODULE_DIR);
- std::string modulePaths = utils::secure_getenv("LIBCAMERA_IPA_MODULE_PATH");
- if (modulePaths.empty())
+ const char *envModulePaths = utils::secure_getenv("LIBCAMERA_IPA_MODULE_PATH");
+ if (!envModulePaths)
return;
+ std::string modulePaths = envModulePaths;
for (size_t pos = 0, delim = 0; delim != std::string::npos;
pos = delim + 1) {
delim = modulePaths.find(':', pos);
--
2.21.0
More information about the libcamera-devel
mailing list