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 <laurent.pinchart@ideasonboard.com>
Reviewed-by: Hirokazu Honda <hiroh@chromium.org>
Reviewed-by: Umang Jain <umang.jain@ideasonboard.com>
Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
This commit is contained in:
Laurent Pinchart
2021-06-16 18:30:23 +03:00
parent 73b823b220
commit 969da31894
2 changed files with 10 additions and 1 deletions
+6 -1
View File
@@ -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
}