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 <rmy@pobox.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
Ron Yorston 2022-04-21 08:02:15 +01:00 committed by Denys Vlasenko
parent 8d67007a4d
commit 95fec31be6
2 changed files with 4 additions and 4 deletions

View File

@ -12,11 +12,11 @@
* instead of including libbb.h */ * instead of including libbb.h */
//#include "libbb.h" //#include "libbb.h"
#include "platform.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 */ /* suppress gcc "no previous prototype" warning */
void FAST_FUNC bb_perror_nomsg(void); void FAST_FUNC bb_perror_nomsg(void);
void FAST_FUNC bb_perror_nomsg(void) void FAST_FUNC bb_perror_nomsg(void)
{ {
bb_simple_perror_msg(0); bb_perror_msg(0);
} }

View File

@ -12,11 +12,11 @@
* instead of including libbb.h */ * instead of including libbb.h */
//#include "libbb.h" //#include "libbb.h"
#include "platform.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 */ /* suppress gcc "no previous prototype" warning */
void FAST_FUNC bb_perror_nomsg_and_die(void); void FAST_FUNC bb_perror_nomsg_and_die(void);
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);
} }