Hi Paul, I noticed that verror/error call va_end twice. Once in error_tail and then again in the calling function.
This seems to have occurred when privatizing functions in glibc a while ago. I've pushed this patch to Gnulib. Only a one line change, but I don't have copyright papers for glibc, so feel free to add: Signed-off-by: Collin Funk <collin.fu...@gmail.com> to keep things clean there. Collin
>From ba9136b7646ef9e01ffad3ddcf232002354531d0 Mon Sep 17 00:00:00 2001 From: Collin Funk <collin.fu...@gmail.com> Date: Wed, 2 Oct 2024 19:55:26 -0700 Subject: [PATCH] error, verror: Don't call va_end twice. * lib/error.c (error_tail): Remove va_end call. --- ChangeLog | 5 +++++ lib/error.c | 1 - 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index d3311a6ea8..72a40a6ceb 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2024-10-02 Collin Funk <collin.fu...@gmail.com> + + error, verror: Don't call va_end twice. + * lib/error.c (error_tail): Remove va_end call. + 2024-10-02 Paul Eggert <egg...@cs.ucla.edu> file-has-acl: no need for struct stat diff --git a/lib/error.c b/lib/error.c index 837d5e56c6..6816805326 100644 --- a/lib/error.c +++ b/lib/error.c @@ -228,7 +228,6 @@ error_tail (int status, int errnum, const char *message, va_list args, #else vfprintf (stderr, message, args); #endif - va_end (args); ++error_message_count; if (errnum) -- 2.46.2