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