From 969da31894394db4f64c4a0e96ec2252fb13142b Mon Sep 17 00:00:00 2001 From: Laurent Pinchart Date: Wed, 16 Jun 2021 18:30:23 +0300 Subject: libcamera: utils: Support systems that lack secure_getenv and issetugid Android provides neither secure_getenv() nor issetugid(). Enable compilation on that platform by using a plain getenv(), as that seems to be the best we can do. Signed-off-by: Laurent Pinchart Reviewed-by: Hirokazu Honda Reviewed-by: Umang Jain Reviewed-by: Kieran Bingham --- src/libcamera/utils.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/libcamera/utils.cpp b/src/libcamera/utils.cpp index 2e7d35fb..49b8fc9e 100644 --- a/src/libcamera/utils.cpp +++ b/src/libcamera/utils.cpp @@ -59,6 +59,10 @@ const char *basename(const char *path) * avoid vulnerabilities that could occur if set-user-ID or set-group-ID * programs accidentally trust the environment. * + * \note Not all platforms may support the features required to implement the + * secure execution check, in which case this function behaves as getenv(). A + * notable example of this is Android. + * * \return A pointer to the value in the environment or NULL if the requested * environment variable doesn't exist or if secure execution is required. */ @@ -67,9 +71,10 @@ char *secure_getenv(const char *name) #if HAVE_SECURE_GETENV return ::secure_getenv(name); #else +#if HAVE_ISSETUGID if (issetugid()) return NULL; - +#endif return getenv(name); #endif } -- cgit v1.2.1