fixes revealed by randomconfig run

This commit is contained in:
Denis Vlasenko 2007-10-16 22:53:05 +00:00
parent 23c8128916
commit 5576136563
3 changed files with 14 additions and 10 deletions

View File

@ -119,6 +119,7 @@ static const char *human_fstype(uint32_t f_type)
return humantypes[i].fs; return humantypes[i].fs;
} }
#if ENABLE_FEATURE_STAT_FORMAT
static void strcatc(char *str, char c) static void strcatc(char *str, char c)
{ {
int len = strlen(str); int len = strlen(str);
@ -132,7 +133,6 @@ static void printfs(char *pformat, const char *msg)
printf(pformat, msg); printf(pformat, msg);
} }
#if ENABLE_FEATURE_STAT_FORMAT
/* print statfs info */ /* print statfs info */
static void print_statfs(char *pformat, const char m, static void print_statfs(char *pformat, const char m,
const char *const filename, const void *data const char *const filename, const void *data

View File

@ -492,7 +492,11 @@ int telnetd_main(int argc, char **argv)
while (ts) { while (ts) {
struct tsession *next = ts->next; /* in case we free ts. */ struct tsession *next = ts->next; /* in case we free ts. */
if (ts->shell_pid == -1) { if (ts->shell_pid == -1) {
#if !ENABLE_FEATURE_TELNETD_STANDALONE
return 0;
#else
free_session(ts); free_session(ts);
#endif
} else { } else {
if (ts->size1 > 0) /* can write to pty */ if (ts->size1 > 0) /* can write to pty */
FD_SET(ts->ptyfd, &wrfdset); FD_SET(ts->ptyfd, &wrfdset);
@ -552,8 +556,6 @@ int telnetd_main(int argc, char **argv)
if (count < 0) { if (count < 0) {
if (errno == EAGAIN) if (errno == EAGAIN)
goto skip1; goto skip1;
if (IS_INETD)
return 0;
goto kill_session; goto kill_session;
} }
ts->size1 -= count; ts->size1 -= count;
@ -569,8 +571,6 @@ int telnetd_main(int argc, char **argv)
if (count < 0) { if (count < 0) {
if (errno == EAGAIN) if (errno == EAGAIN)
goto skip2; goto skip2;
if (IS_INETD)
return 0;
goto kill_session; goto kill_session;
} }
ts->size2 -= count; ts->size2 -= count;
@ -601,8 +601,6 @@ int telnetd_main(int argc, char **argv)
if (count <= 0) { if (count <= 0) {
if (count < 0 && errno == EAGAIN) if (count < 0 && errno == EAGAIN)
goto skip3; goto skip3;
if (IS_INETD)
return 0;
goto kill_session; goto kill_session;
} }
/* Ignore trailing NUL if it is there */ /* Ignore trailing NUL if it is there */
@ -622,8 +620,6 @@ int telnetd_main(int argc, char **argv)
if (count <= 0) { if (count <= 0) {
if (count < 0 && errno == EAGAIN) if (count < 0 && errno == EAGAIN)
goto skip4; goto skip4;
if (IS_INETD)
return 0;
goto kill_session; goto kill_session;
} }
ts->size2 += count; ts->size2 += count;
@ -635,8 +631,14 @@ int telnetd_main(int argc, char **argv)
ts = next; ts = next;
continue; continue;
kill_session: kill_session:
#if !ENABLE_FEATURE_TELNETD_STANDALONE
return 0;
#else
if (IS_INETD)
return 0;
free_session(ts); free_session(ts);
ts = next; ts = next;
#endif
} }
goto again; goto again;

View File

@ -82,10 +82,12 @@ struct globals {
/* int hist_iterations; */ /* int hist_iterations; */
unsigned total_pcpu; unsigned total_pcpu;
/* unsigned long total_vsz; */ /* unsigned long total_vsz; */
char line_buf[80];
#endif #endif
char line_buf[80];
}; };
enum { LINE_BUF_SIZE = COMMON_BUFSIZE - offsetof(struct globals, line_buf) }; enum { LINE_BUF_SIZE = COMMON_BUFSIZE - offsetof(struct globals, line_buf) };
#define G (*(struct globals*)&bb_common_bufsiz1) #define G (*(struct globals*)&bb_common_bufsiz1)
#define INIT_G() \ #define INIT_G() \
do { \ do { \