CryptoPkg/CrtLibSupport: add secure_getenv() stub function
authorLaszlo Ersek <lersek@redhat.com>
Mon, 7 May 2018 19:59:23 +0000 (21:59 +0200)
committerLaszlo Ersek <lersek@redhat.com>
Tue, 8 May 2018 11:29:06 +0000 (13:29 +0200)
The Fedora distro ships a modified OpenSSL 1.1.0 package stream. One of
their patches calls the secure_getenv() C library function. We already
have a stub for getenv(); it applies trivially to secure_getenv() as well.
Add the secure_getenv() stub so that edk2 can be built with Fedora's
OpenSSL 1.1.0 sources.

Cc: Qin Long <qin.long@intel.com>
Cc: Ting Ye <ting.ye@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Long Qin <qin.long@intel.com>
CryptoPkg/Library/BaseCryptLib/SysCall/CrtWrapper.c
CryptoPkg/Library/Include/CrtLibSupport.h

index 20c9656..9510a4a 100644 (file)
@@ -361,6 +361,19 @@ char *getenv (const char *varname)
   return NULL;\r
 }\r
 \r
+/* Get a value from the current environment */\r
+char *secure_getenv (const char *varname)\r
+{\r
+  //\r
+  // Null secure_getenv() function implementation to satisfy the linker, since\r
+  // there is no direct functionality logic dependency in present UEFI cases.\r
+  //\r
+  // From the secure_getenv() manual: 'just like getenv() except that it\r
+  // returns NULL in cases where "secure execution" is required'.\r
+  //\r
+  return NULL;\r
+}\r
+\r
 //\r
 // -- Stream I/O Routines --\r
 //\r
index 7f1ec12..feaf58b 100644 (file)
@@ -163,6 +163,7 @@ gid_t          getgid      (void);
 gid_t          getegid     (void);\r
 void           qsort       (void *, size_t, size_t, int (*)(const void *, const void *));\r
 char           *getenv     (const char *);\r
+char           *secure_getenv (const char *);\r
 #if defined(__GNUC__) && (__GNUC__ >= 2)\r
 void           abort       (void) __attribute__((__noreturn__));\r
 #else\r