aboutsummaryrefslogtreecommitdiffstats
path: root/src/logging.c
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>2018-03-18 16:39:43 +0000
committerWerner Koch <[email protected]>2018-03-18 16:39:43 +0000
commit791177de023574223eddf7288eb7c5a0721ac623 (patch)
tree47c4acc245edcf602effe9bfa4e3eb512033c698 /src/logging.c
parentcore: Fix building on W64 (diff)
downloadlibgpg-error-791177de023574223eddf7288eb7c5a0721ac623.tar.gz
libgpg-error-791177de023574223eddf7288eb7c5a0721ac623.zip
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 <[email protected]> Signed-off-by: Werner Koch <[email protected]>
Diffstat (limited to 'src/logging.c')
-rw-r--r--src/logging.c18
1 files changed, 14 insertions, 4 deletions
diff --git a/src/logging.c b/src/logging.c
index 1a4f620..d01f974 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);
+ }
}