*
* Licensed under GPLv2 or later, see file LICENSE in this source tree.
*/
-#include <sys/prctl.h>
-#ifndef PR_SET_NAME
-#define PR_SET_NAME 15
-#endif
-#ifndef PR_GET_NAME
-#define PR_GET_NAME 16
-#endif
-
#include "busybox.h" /* uses applet tables */
#include "NUM_APPLETS.h"
#define NOEXEC_SUPPORT ((NUM_APPLETS > 1) && (ENABLE_FEATURE_PREFER_APPLETS || ENABLE_FEATURE_SH_STANDALONE))
#if defined(__linux__) && (NUM_APPLETS > 1)
+# include <sys/prctl.h>
+# ifndef PR_SET_NAME
+# define PR_SET_NAME 15
+# endif
+# ifndef PR_GET_NAME
+# define PR_GET_NAME 16
+# endif
void FAST_FUNC set_task_comm(const char *comm)
{
/* okay if too long (truncates) */
{
/* Special case. We arrive here if NOFORK applet
* calls xfunc, which then decides to die.
- * We don't die, but jump instead back to caller.
+ * We don't die, but instead jump back to caller.
* NOFORK applets still cannot carelessly call xfuncs:
* p = xmalloc(10);
* q = xmalloc(10); // BUG! if this dies, we leak p!
*/
/* | 0x100 allows to pass zero exitcode (longjmp can't pass 0).
* This works because exitcodes are bytes,
- * run_nofork_applet() ensures that by "& 0xff" */
+ * run_nofork_applet() ensures that by "& 0xff"
+ */
longjmp(die_jmp, xfunc_error_retval | 0x100);
}
logmode = LOGMODE_STDIO;
xfunc_error_retval = EXIT_FAILURE;
- /* In case getopt() or getopt32() was already called:
+ /* In case getopt() was already called:
* reset the libc getopt() function, which keeps internal state.
+ * (getopt32() does it itself, but getopt() doesn't (and can't))
*/
GETOPT_RESET();
-//? applet_long_options = NULL;
-//? opt_complementary = NULL;
argc = string_array_len(argv);
restore_nofork_data(&old);
/* Other globals can be simply reset to defaults */
GETOPT_RESET();
-//? applet_long_options = NULL;
-//? opt_complementary = NULL;
return rc & 0xff; /* don't confuse people with "exitcodes" >255 */
}
xfunc_error_retval = EXIT_FAILURE;
die_func = NULL;
GETOPT_RESET();
-//? applet_long_options = NULL;
-//? opt_complementary = NULL;
//TODO: think pidof, pgrep, pkill!
//set_task_comm() makes our pidof find NOEXECs (e.g. "yes >/dev/null"),