fd_set allsock;
/* Used in next_line(), and as scratch read buffer */
char line[256]; /* _at least_ 256, see LINE_SIZE */
-};
+} FIX_ALIASING;
#define G (*(struct globals*)&bb_common_bufsiz1)
enum { LINE_SIZE = COMMON_BUFSIZE - offsetof(struct globals, line) };
struct BUG_G_too_big {
pid = vfork();
if (pid < 0) { /* fork error */
- bb_perror_msg("fork");
+ bb_perror_msg("vfork"+1);
sleep(1);
restore_sigmask(&omask);
maybe_close(accepted_fd);
if (setrlimit(RLIMIT_NOFILE, &rlim_ofile) < 0)
bb_perror_msg("setrlimit");
- /*closelog(); - BAD, we are after vfork,
- * this may confuse syslog() state.
- * Let's hope libc set syslog fd to CLOEXEC...
+ /* closelog(); - WRONG. we are after vfork,
+ * this may confuse syslog() internal state.
+ * Let's hope libc sets syslog fd to CLOEXEC...
*/
xmove_fd(ctrl, STDIN_FILENO);
xdup2(STDIN_FILENO, STDOUT_FILENO);
sigaction_set(SIGPIPE, &saved_pipe_handler);
restore_sigmask(&omask);
BB_EXECVP(sep->se_program, sep->se_argv);
- bb_perror_msg("exec %s", sep->se_program);
+ bb_perror_msg("can't execute '%s'", sep->se_program);
do_exit1:
/* eat packet in udp case */
if (sep->se_socktype != SOCK_STREAM)
int i;
end_ring = ring;
- for (i = 0; i <= 128; ++i)
- if (isprint(i))
- *end_ring++ = i;
+ for (i = ' '; i < 127; i++)
+ *end_ring++ = i;
}
/* Character generator. MMU arches only. */
/* ARGSUSED */