From 95fec31be601bfdced6bed7007a33b26e968e0db Mon Sep 17 00:00:00 2001 From: Ron Yorston Date: Thu, 21 Apr 2022 08:02:15 +0100 Subject: [PATCH] libbb: restore special handling of nomsg errors The functions bb_perror_nomsg() and bb_perror_nomsg_and_die() are used to print error messages where no specific information is available. For example: $ busybox mktemp -p / mktemp: (null): Permission denied mktemp(3) doesn't tell us the name of the file it tried to create. However, printing '(null)' is a regression introduced by commit 6937487be (libbb: reduce the overhead of single parameter bb_error_msg() calls). Restore the previous behaviour by reverting the changes to the two functions mentioned: $ busybox mktemp -p / mktemp: Permission denied function old new delta bb_perror_nomsg_and_die 7 14 +7 bb_perror_nomsg 7 14 +7 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 2/0 up/down: 14/0) Total: 14 bytes Signed-off-by: Ron Yorston Signed-off-by: Denys Vlasenko --- libbb/perror_nomsg.c | 4 ++-- libbb/perror_nomsg_and_die.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/libbb/perror_nomsg.c b/libbb/perror_nomsg.c index d7d53de44..a2a11cc8e 100644 --- a/libbb/perror_nomsg.c +++ b/libbb/perror_nomsg.c @@ -12,11 +12,11 @@ * instead of including libbb.h */ //#include "libbb.h" #include "platform.h" -extern void bb_simple_perror_msg(const char *s) FAST_FUNC; +extern void bb_perror_msg(const char *s, ...) FAST_FUNC; /* suppress gcc "no previous prototype" warning */ void FAST_FUNC bb_perror_nomsg(void); void FAST_FUNC bb_perror_nomsg(void) { - bb_simple_perror_msg(0); + bb_perror_msg(0); } diff --git a/libbb/perror_nomsg_and_die.c b/libbb/perror_nomsg_and_die.c index bea5f25a5..543ff5178 100644 --- a/libbb/perror_nomsg_and_die.c +++ b/libbb/perror_nomsg_and_die.c @@ -12,11 +12,11 @@ * instead of including libbb.h */ //#include "libbb.h" #include "platform.h" -extern void bb_simple_perror_msg_and_die(const char *s) FAST_FUNC; +extern void bb_perror_msg_and_die(const char *s, ...) FAST_FUNC; /* suppress gcc "no previous prototype" warning */ void FAST_FUNC bb_perror_nomsg_and_die(void); void FAST_FUNC bb_perror_nomsg_and_die(void) { - bb_simple_perror_msg_and_die(0); + bb_perror_msg_and_die(0); }