CryptoPkg/Library/Include/CrtLibSupport.h | 1 + CryptoPkg/Library/BaseCryptLib/SysCall/CrtWrapper.c | 13 +++++++++++++ 2 files changed, 14 insertions(+)
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
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
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
© 2016 - 2024 Red Hat, Inc.