[edk2] [PATCH] CryptoPkg/CrtLibSupport: add secure_getenv() stub function

Laszlo Ersek posted 1 patch 5 years, 11 months ago
Failed in applying to current master (apply log)
CryptoPkg/Library/Include/CrtLibSupport.h           |  1 +
CryptoPkg/Library/BaseCryptLib/SysCall/CrtWrapper.c | 13 +++++++++++++
2 files changed, 14 insertions(+)
[edk2] [PATCH] CryptoPkg/CrtLibSupport: add secure_getenv() stub function
Posted by Laszlo Ersek 5 years, 11 months ago
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>
---

Notes:
    Repo:   https://github.com/lersek/edk2.git
    Branch: secure_getenv

 CryptoPkg/Library/Include/CrtLibSupport.h           |  1 +
 CryptoPkg/Library/BaseCryptLib/SysCall/CrtWrapper.c | 13 +++++++++++++
 2 files changed, 14 insertions(+)

diff --git a/CryptoPkg/Library/Include/CrtLibSupport.h b/CryptoPkg/Library/Include/CrtLibSupport.h
index 7f1ec1230206..feaf58b0c79a 100644
--- a/CryptoPkg/Library/Include/CrtLibSupport.h
+++ b/CryptoPkg/Library/Include/CrtLibSupport.h
@@ -163,6 +163,7 @@ gid_t          getgid      (void);
 gid_t          getegid     (void);
 void           qsort       (void *, size_t, size_t, int (*)(const void *, const void *));
 char           *getenv     (const char *);
+char           *secure_getenv (const char *);
 #if defined(__GNUC__) && (__GNUC__ >= 2)
 void           abort       (void) __attribute__((__noreturn__));
 #else
diff --git a/CryptoPkg/Library/BaseCryptLib/SysCall/CrtWrapper.c b/CryptoPkg/Library/BaseCryptLib/SysCall/CrtWrapper.c
index 20c96563d270..9510a4a383e6 100644
--- a/CryptoPkg/Library/BaseCryptLib/SysCall/CrtWrapper.c
+++ b/CryptoPkg/Library/BaseCryptLib/SysCall/CrtWrapper.c
@@ -361,6 +361,19 @@ char *getenv (const char *varname)
   return NULL;
 }
 
+/* Get a value from the current environment */
+char *secure_getenv (const char *varname)
+{
+  //
+  // Null secure_getenv() function implementation to satisfy the linker, since
+  // there is no direct functionality logic dependency in present UEFI cases.
+  //
+  // From the secure_getenv() manual: 'just like getenv() except that it
+  // returns NULL in cases where "secure execution" is required'.
+  //
+  return NULL;
+}
+
 //
 // -- Stream I/O Routines --
 //
-- 
2.14.1.3.gb7cf6e02401b

_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel
Re: [edk2] [PATCH] CryptoPkg/CrtLibSupport: add secure_getenv() stub function
Posted by Long, Qin 5 years, 11 months ago
It's OK for me to add this NULL wrapper. 

Reviewed-by: Long Qin <qin.long@intel.com>


Best Regards & Thanks,
LONG, Qin

-----Original Message-----
From: Laszlo Ersek [mailto:lersek@redhat.com] 
Sent: Tuesday, May 8, 2018 4:21 AM
To: edk2-devel-01 <edk2-devel@lists.01.org>
Cc: Long, Qin <qin.long@intel.com>; Ye, Ting <ting.ye@intel.com>
Subject: [PATCH] CryptoPkg/CrtLibSupport: add secure_getenv() stub function

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>
---

Notes:
    Repo:   https://github.com/lersek/edk2.git
    Branch: secure_getenv

 CryptoPkg/Library/Include/CrtLibSupport.h           |  1 +
 CryptoPkg/Library/BaseCryptLib/SysCall/CrtWrapper.c | 13 +++++++++++++
 2 files changed, 14 insertions(+)

diff --git a/CryptoPkg/Library/Include/CrtLibSupport.h b/CryptoPkg/Library/Include/CrtLibSupport.h
index 7f1ec1230206..feaf58b0c79a 100644
--- a/CryptoPkg/Library/Include/CrtLibSupport.h
+++ b/CryptoPkg/Library/Include/CrtLibSupport.h
@@ -163,6 +163,7 @@ gid_t          getgid      (void);
 gid_t          getegid     (void);
 void           qsort       (void *, size_t, size_t, int (*)(const void *, const void *));
 char           *getenv     (const char *);
+char           *secure_getenv (const char *);
 #if defined(__GNUC__) && (__GNUC__ >= 2)
 void           abort       (void) __attribute__((__noreturn__));
 #else
diff --git a/CryptoPkg/Library/BaseCryptLib/SysCall/CrtWrapper.c b/CryptoPkg/Library/BaseCryptLib/SysCall/CrtWrapper.c
index 20c96563d270..9510a4a383e6 100644
--- a/CryptoPkg/Library/BaseCryptLib/SysCall/CrtWrapper.c
+++ b/CryptoPkg/Library/BaseCryptLib/SysCall/CrtWrapper.c
@@ -361,6 +361,19 @@ char *getenv (const char *varname)
   return NULL;
 }
 
+/* Get a value from the current environment */ char *secure_getenv 
+(const char *varname) {
+  //
+  // Null secure_getenv() function implementation to satisfy the 
+linker, since
+  // there is no direct functionality logic dependency in present UEFI cases.
+  //
+  // From the secure_getenv() manual: 'just like getenv() except that 
+it
+  // returns NULL in cases where "secure execution" is required'.
+  //
+  return NULL;
+}
+
 //
 // -- Stream I/O Routines --
 //
--
2.14.1.3.gb7cf6e02401b

_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel
Re: [edk2] [PATCH] CryptoPkg/CrtLibSupport: add secure_getenv() stub function
Posted by Laszlo Ersek 5 years, 11 months ago
On 05/08/18 10:51, Long, Qin wrote:
> It's OK for me to add this NULL wrapper. 
> 
> Reviewed-by: Long Qin <qin.long@intel.com>

Thank you very much!

Commit ee3198e672e2.

Laszlo

> -----Original Message-----
> From: Laszlo Ersek [mailto:lersek@redhat.com] 
> Sent: Tuesday, May 8, 2018 4:21 AM
> To: edk2-devel-01 <edk2-devel@lists.01.org>
> Cc: Long, Qin <qin.long@intel.com>; Ye, Ting <ting.ye@intel.com>
> Subject: [PATCH] CryptoPkg/CrtLibSupport: add secure_getenv() stub function
> 
> 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>
> ---
> 
> Notes:
>     Repo:   https://github.com/lersek/edk2.git
>     Branch: secure_getenv
> 
>  CryptoPkg/Library/Include/CrtLibSupport.h           |  1 +
>  CryptoPkg/Library/BaseCryptLib/SysCall/CrtWrapper.c | 13 +++++++++++++
>  2 files changed, 14 insertions(+)
> 
> diff --git a/CryptoPkg/Library/Include/CrtLibSupport.h b/CryptoPkg/Library/Include/CrtLibSupport.h
> index 7f1ec1230206..feaf58b0c79a 100644
> --- a/CryptoPkg/Library/Include/CrtLibSupport.h
> +++ b/CryptoPkg/Library/Include/CrtLibSupport.h
> @@ -163,6 +163,7 @@ gid_t          getgid      (void);
>  gid_t          getegid     (void);
>  void           qsort       (void *, size_t, size_t, int (*)(const void *, const void *));
>  char           *getenv     (const char *);
> +char           *secure_getenv (const char *);
>  #if defined(__GNUC__) && (__GNUC__ >= 2)
>  void           abort       (void) __attribute__((__noreturn__));
>  #else
> diff --git a/CryptoPkg/Library/BaseCryptLib/SysCall/CrtWrapper.c b/CryptoPkg/Library/BaseCryptLib/SysCall/CrtWrapper.c
> index 20c96563d270..9510a4a383e6 100644
> --- a/CryptoPkg/Library/BaseCryptLib/SysCall/CrtWrapper.c
> +++ b/CryptoPkg/Library/BaseCryptLib/SysCall/CrtWrapper.c
> @@ -361,6 +361,19 @@ char *getenv (const char *varname)
>    return NULL;
>  }
>  
> +/* Get a value from the current environment */ char *secure_getenv 
> +(const char *varname) {
> +  //
> +  // Null secure_getenv() function implementation to satisfy the 
> +linker, since
> +  // there is no direct functionality logic dependency in present UEFI cases.
> +  //
> +  // From the secure_getenv() manual: 'just like getenv() except that 
> +it
> +  // returns NULL in cases where "secure execution" is required'.
> +  //
> +  return NULL;
> +}
> +
>  //
>  // -- Stream I/O Routines --
>  //
> --
> 2.14.1.3.gb7cf6e02401b
> 
> _______________________________________________
> edk2-devel mailing list
> edk2-devel@lists.01.org
> https://lists.01.org/mailman/listinfo/edk2-devel
> 

_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel