[git commit] libbb: do not open-code __errno_location() call

Denys Vlasenko vda.linux at googlemail.com
Wed Sep 30 23:44:26 UTC 2020


commit: https://git.busybox.net/busybox/commit/?id=aaa0709e7b39d0dc22ac92443a86c84eaff58679
branch: https://git.busybox.net/busybox/commit/?id=refs/heads/master

Thanks dalias!

Signed-off-by: Denys Vlasenko <vda.linux at googlemail.com>
---
 libbb/appletlib.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/libbb/appletlib.c b/libbb/appletlib.c
index 717c63649..5f59f1273 100644
--- a/libbb/appletlib.c
+++ b/libbb/appletlib.c
@@ -25,6 +25,11 @@
  *
  * FEATURE_INSTALLER or FEATURE_SUID will still link printf routines in. :(
  */
+
+/* Define this accessor before we #define "errno" our way */
+#include <errno.h>
+static inline int *get_perrno(void) { return &errno; }
+
 #include "busybox.h"
 
 #if !(defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__) \
@@ -304,7 +309,7 @@ void lbb_prepare(const char *applet
 		IF_FEATURE_INDIVIDUAL(, char **argv))
 {
 #ifdef bb_cached_errno_ptr
-	(*(int **)not_const_pp(&bb_errno)) = __errno_location();
+	(*(int **)not_const_pp(&bb_errno)) = get_perrno();
 	barrier();
 #endif
 	applet_name = applet;


More information about the busybox-cvs mailing list