diff options
author | Denys Vlasenko <vda.linux@googlemail.com> | 2017-08-03 19:00:01 +0200 |
---|---|---|
committer | Denys Vlasenko <vda.linux@googlemail.com> | 2017-08-03 19:03:32 +0200 |
commit | 39194f030918b87eeb3e11e94cfa05f575fb47b4 (patch) | |
tree | 97ea35e2c5984c5c6757ff9a540630ada4b234d5 /libbb/vfork_daemon_rexec.c | |
parent | 663ae52676eae3b0fdc6bb968ff6497279a034a4 (diff) | |
download | busybox-w32-39194f030918b87eeb3e11e94cfa05f575fb47b4.tar.gz busybox-w32-39194f030918b87eeb3e11e94cfa05f575fb47b4.tar.bz2 busybox-w32-39194f030918b87eeb3e11e94cfa05f575fb47b4.zip |
new NOFORKs: pwdx,kill[all5],ttysize,realpath,readlink NOEXECs: date,resize
function old new delta
run_nofork_applet 258 280 +22
readlink_main 112 123 +11
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 2/0 up/down: 33/0) Total: 33 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'libbb/vfork_daemon_rexec.c')
-rw-r--r-- | libbb/vfork_daemon_rexec.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/libbb/vfork_daemon_rexec.c b/libbb/vfork_daemon_rexec.c index 576534ee5..487ecb0e4 100644 --- a/libbb/vfork_daemon_rexec.c +++ b/libbb/vfork_daemon_rexec.c | |||
@@ -92,6 +92,7 @@ struct nofork_save_area { | |||
92 | void (*die_func)(void); | 92 | void (*die_func)(void); |
93 | const char *applet_name; | 93 | const char *applet_name; |
94 | uint32_t option_mask32; | 94 | uint32_t option_mask32; |
95 | smallint logmode; | ||
95 | uint8_t xfunc_error_retval; | 96 | uint8_t xfunc_error_retval; |
96 | }; | 97 | }; |
97 | static void save_nofork_data(struct nofork_save_area *save) | 98 | static void save_nofork_data(struct nofork_save_area *save) |
@@ -100,6 +101,7 @@ static void save_nofork_data(struct nofork_save_area *save) | |||
100 | save->die_func = die_func; | 101 | save->die_func = die_func; |
101 | save->applet_name = applet_name; | 102 | save->applet_name = applet_name; |
102 | save->option_mask32 = option_mask32; | 103 | save->option_mask32 = option_mask32; |
104 | save->logmode = logmode; | ||
103 | save->xfunc_error_retval = xfunc_error_retval; | 105 | save->xfunc_error_retval = xfunc_error_retval; |
104 | } | 106 | } |
105 | static void restore_nofork_data(struct nofork_save_area *save) | 107 | static void restore_nofork_data(struct nofork_save_area *save) |
@@ -108,6 +110,7 @@ static void restore_nofork_data(struct nofork_save_area *save) | |||
108 | die_func = save->die_func; | 110 | die_func = save->die_func; |
109 | applet_name = save->applet_name; | 111 | applet_name = save->applet_name; |
110 | option_mask32 = save->option_mask32; | 112 | option_mask32 = save->option_mask32; |
113 | logmode = save->logmode; | ||
111 | xfunc_error_retval = save->xfunc_error_retval; | 114 | xfunc_error_retval = save->xfunc_error_retval; |
112 | } | 115 | } |
113 | 116 | ||
@@ -118,8 +121,8 @@ int FAST_FUNC run_nofork_applet(int applet_no, char **argv) | |||
118 | 121 | ||
119 | save_nofork_data(&old); | 122 | save_nofork_data(&old); |
120 | 123 | ||
124 | logmode = LOGMODE_STDIO; | ||
121 | xfunc_error_retval = EXIT_FAILURE; | 125 | xfunc_error_retval = EXIT_FAILURE; |
122 | |||
123 | /* In case getopt() or getopt32() was already called: | 126 | /* In case getopt() or getopt32() was already called: |
124 | * reset the libc getopt() function, which keeps internal state. | 127 | * reset the libc getopt() function, which keeps internal state. |
125 | */ | 128 | */ |
@@ -146,7 +149,6 @@ int FAST_FUNC run_nofork_applet(int applet_no, char **argv) | |||
146 | 149 | ||
147 | /* Restoring some globals */ | 150 | /* Restoring some globals */ |
148 | restore_nofork_data(&old); | 151 | restore_nofork_data(&old); |
149 | |||
150 | /* Other globals can be simply reset to defaults */ | 152 | /* Other globals can be simply reset to defaults */ |
151 | GETOPT_RESET(); | 153 | GETOPT_RESET(); |
152 | 154 | ||