--- busybox-1.21.0/include/libbb.h	2022-08-24 22:56:03.105542484 +0200
+++ src/include/libbb.h	2022-08-24 22:25:29.092656001 +0200
@@ -486,7 +486,7 @@
                 unsigned override_units,
                 int extend);
 
-void xpipe(int filedes[2]) FAST_FUNC;
+void xpipe(int *filedes) FAST_FUNC;
 /* In this form code with pipes is much more readable */
 struct fd_pair { int rd; int wr; };
 #define piped_pair(pair)  pipe(&((pair).rd))
--- busybox-1.21.0/libbb/lineedit.c	2022-08-24 22:56:03.061541973 +0200
+++ src/libbb/lineedit.c	2022-08-24 22:25:29.096656044 +0200
@@ -1229,7 +1229,7 @@
 			strcpy(&command[cursor_mb], chosen_match + match_pfx_len);
 			len = load_string(command);
 			/* add match and tail */
-			sprintf(&command[cursor_mb], "%s%s", chosen_match + match_pfx_len, match_buf);
+			stpcpy(stpcpy(&command[cursor_mb], chosen_match + match_pfx_len), match_buf);
 			command_len = load_string(command);
 			/* write out the matched command */
 			/* paranoia: load_string can return 0 on conv error,
--- busybox-1.21.0/libbb/xfuncs_printf.c	2012-12-22 23:39:00.000000000 +0100
+++ src/libbb/xfuncs_printf.c	2022-08-24 22:25:29.100656087 +0200
@@ -187,7 +187,7 @@
 	return n;
 }
 
-void FAST_FUNC xpipe(int filedes[2])
+void FAST_FUNC xpipe(int *filedes)
 {
 	if (pipe(filedes))
 		bb_perror_msg_and_die("can't create pipe");
--- busybox-1.21.0/shell/ash.c	2013-01-19 23:02:43.000000000 +0100
+++ src/shell/ash.c	2022-08-24 22:53:48.423979475 +0200
@@ -8453,7 +8453,7 @@
 			n->nbinary.ch1,
 			(flags | ((is_or >> 1) - 1)) & EV_TESTED
 		);
-		if (!exitstatus == is_or)
+		if ((!exitstatus) == is_or)
 			break;
 		if (!evalskip) {
 			n = n->nbinary.ch2;
