aboutsummaryrefslogtreecommitdiff
path: root/libbb
diff options
context:
space:
mode:
Diffstat (limited to 'libbb')
-rw-r--r--libbb/vfork_daemon_rexec.c16
-rw-r--r--libbb/xfuncs_printf.c11
2 files changed, 12 insertions, 15 deletions
diff --git a/libbb/vfork_daemon_rexec.c b/libbb/vfork_daemon_rexec.c
index 8102ea2dc..5c2c529c9 100644
--- a/libbb/vfork_daemon_rexec.c
+++ b/libbb/vfork_daemon_rexec.c
@@ -224,26 +224,12 @@ pid_t FAST_FUNC fork_or_rexec(char **argv)
224 /* Maybe we are already re-execed and come here again? */ 224 /* Maybe we are already re-execed and come here again? */
225 if (re_execed) 225 if (re_execed)
226 return 0; 226 return 0;
227 pid = vfork(); 227 pid = xvfork();
228 if (pid < 0) /* wtf? */
229 bb_perror_msg_and_die("vfork");
230 if (pid) /* parent */ 228 if (pid) /* parent */
231 return pid; 229 return pid;
232 /* child - re-exec ourself */ 230 /* child - re-exec ourself */
233 re_exec(argv); 231 re_exec(argv);
234} 232}
235#else
236/* Dance around (void)...*/
237#undef fork_or_rexec
238pid_t FAST_FUNC fork_or_rexec(void)
239{
240 pid_t pid;
241 pid = fork();
242 if (pid < 0) /* wtf? */
243 bb_perror_msg_and_die("fork");
244 return pid;
245}
246#define fork_or_rexec(argv) fork_or_rexec()
247#endif 233#endif
248 234
249/* Due to a #define in libbb.h on MMU systems we actually have 1 argument - 235/* Due to a #define in libbb.h on MMU systems we actually have 1 argument -
diff --git a/libbb/xfuncs_printf.c b/libbb/xfuncs_printf.c
index f021493b1..7069a7c8e 100644
--- a/libbb/xfuncs_printf.c
+++ b/libbb/xfuncs_printf.c
@@ -589,3 +589,14 @@ void FAST_FUNC generate_uuid(uint8_t *buf)
589 /* variant = 10x */ 589 /* variant = 10x */
590 buf[4 + 2 + 2] = (buf[4 + 2 + 2] & 0x3f) | 0x80; 590 buf[4 + 2 + 2] = (buf[4 + 2 + 2] & 0x3f) | 0x80;
591} 591}
592
593#if BB_MMU
594pid_t FAST_FUNC xfork(void)
595{
596 pid_t pid;
597 pid = fork();
598 if (pid < 0) /* wtf? */
599 bb_perror_msg_and_die("vfork"+1);
600 return pid;
601}
602#endif