summaryrefslogtreecommitdiff
path: root/Cryptlib/Include/openssl/bio.h
diff options
context:
space:
mode:
authorGary Ching-Pang Lin <glin@suse.com>2015-10-27 12:00:13 +0800
committerPeter Jones <pjones@redhat.com>2015-11-09 09:50:50 -0500
commit5a49bad020792483b5abd137861f906c55bf9dca (patch)
treec52c4a6cfde6d31ae5c345183fb3c3ee0ecf33f9 /Cryptlib/Include/openssl/bio.h
parente22a7b5b772dba6588dd955dc017e572f7e29784 (diff)
downloadefi-boot-shim-5a49bad020792483b5abd137861f906c55bf9dca.tar.gz
efi-boot-shim-5a49bad020792483b5abd137861f906c55bf9dca.zip
Cryptlib: Define the va functions for EFIAPI
It turned out that my previous crash fix(*) was wrong. We actually always used the gcc built-in va functions instead of the "real" va functions for EFIAPI, and we are just lucky that ERR_add_error_data didn't crash before. This commit copies the va functions from MdePkg/Include/Base.h in edk2 and introdues NO_BUILTIN_VA_FUNCS for x86_64, so that all the x86_64 build will adopt the new va functions. For safety, I also added EFIAPI to all the functions which use va_* to avoid the potential trouble. (*) a7f4b26cc35204165bd04e75c34e8e7aa2a87ecc Signed-off-by: Gary Ching-Pang Lin <glin@suse.com>
Diffstat (limited to 'Cryptlib/Include/openssl/bio.h')
-rw-r--r--Cryptlib/Include/openssl/bio.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/Cryptlib/Include/openssl/bio.h b/Cryptlib/Include/openssl/bio.h
index 561ae2f0..69bd48c9 100644
--- a/Cryptlib/Include/openssl/bio.h
+++ b/Cryptlib/Include/openssl/bio.h
@@ -787,11 +787,19 @@ void BIO_copy_next_retry(BIO *b);
# else
# define __bio_h__attr__(x)
# endif
+# if defined(OPENSSL_SYS_UEFI)
+int EFIAPI BIO_printf(BIO *bio, const char *format, ...)
+# else
int BIO_printf(BIO *bio, const char *format, ...)
+# endif
__bio_h__attr__((__format__(__printf__, 2, 3)));
int BIO_vprintf(BIO *bio, const char *format, va_list args)
__bio_h__attr__((__format__(__printf__, 2, 0)));
+# if defined(OPENSSL_SYS_UEFI)
+int EFIAPI BIO_snprintf(char *buf, size_t n, const char *format, ...)
+# else
int BIO_snprintf(char *buf, size_t n, const char *format, ...)
+# endif
__bio_h__attr__((__format__(__printf__, 3, 4)));
int BIO_vsnprintf(char *buf, size_t n, const char *format, va_list args)
__bio_h__attr__((__format__(__printf__, 3, 0)));