1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- From 791177de023574223eddf7288eb7c5a0721ac623 Mon Sep 17 00:00:00 2001
- From: Werner Koch <wk@gnupg.org>
- Date: Sun, 18 Mar 2018 17:39:43 +0100
- Subject: [PATCH] core: Fix regression on arm64 due to invalid use of va_list.
- * src/logging.c (_gpgrt_log_printhex): Provide a dummy arg instead of
- NULL.
- --
- Fix
- Suggested-by: Jakub Wilk <jwilk@jwilk.net>
- Signed-off-by: Werner Koch <wk@gnupg.org>
- Signed-off-by: Baruch Siach <baruch@tkos.co.il>
- ---
- Upstream status: commit 791177de023
- src/logging.c | 18 ++++++++++++++----
- 1 file changed, 14 insertions(+), 4 deletions(-)
- diff --git a/src/logging.c b/src/logging.c
- index 1a4f6203d16d..d01f974e4545 100644
- --- a/src/logging.c
- +++ b/src/logging.c
- @@ -1090,9 +1090,10 @@ _gpgrt_log_flush (void)
-
-
- /* Print a hexdump of (BUFFER,LENGTH). With FMT passed as NULL print
- - * just the raw dump, with FMT being an empty string, print a trailing
- - * linefeed, otherwise print an entire debug line with the expanded
- - * FMT followed by a possible wrapped hexdump and a final LF. */
- + * just the raw dump (in this case ARG_PTR is not used), with FMT
- + * being an empty string, print a trailing linefeed, otherwise print
- + * an entire debug line with the expanded FMT followed by a possible
- + * wrapped hexdump and a final LF. */
- void
- _gpgrt_logv_printhex (const void *buffer, size_t length,
- const char *fmt, va_list arg_ptr)
- @@ -1150,7 +1151,16 @@ _gpgrt_log_printhex (const void *buffer, size_t length,
- va_end (arg_ptr);
- }
- else
- - _gpgrt_logv_printhex (buffer, length, NULL, NULL);
- + {
- + /* va_list is not necessary a pointer and thus we can't use NULL
- + * because that would conflict with platforms using a straight
- + * struct for it (e.g. arm64). We use a dummy variable instead;
- + * the static is a simple way zero it out so to not get
- + * complains about uninitialized use. */
- + static va_list dummy_argptr;
- +
- + _gpgrt_logv_printhex (buffer, length, NULL, dummy_argptr);
- + }
- }
-
-
- --
- 2.16.2
|