summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--common/sys/telnet.c2
-rw-r--r--include/cmsys.h2
-rw-r--r--mbbsd/telnet.c2
3 files changed, 3 insertions, 3 deletions
diff --git a/common/sys/telnet.c b/common/sys/telnet.c
index b0c5f1d7..2f462867 100644
--- a/common/sys/telnet.c
+++ b/common/sys/telnet.c
@@ -79,7 +79,7 @@ void telnet_send_init_cmds(int fd)
write(fd, telnet_init_cmds, sizeof(telnet_init_cmds));
}
-ssize_t telnet_process(TelnetCtx *ctx, unsigned char *buf, size_t size)
+ssize_t telnet_process(TelnetCtx *ctx, unsigned char *buf, ssize_t size)
{
/* process buffer */
if (size > 0) {
diff --git a/include/cmsys.h b/include/cmsys.h
index 040f1995..863aab3f 100644
--- a/include/cmsys.h
+++ b/include/cmsys.h
@@ -207,6 +207,6 @@ extern void telnet_ctx_init(TelnetCtx *ctx, const struct TelnetCallback *callbac
extern void telnet_ctx_set_cc_arg(TelnetCtx *ctx, void *cc_arg);
extern void telnet_send_init_cmds(int fd);
-extern ssize_t telnet_process(TelnetCtx *ctx, unsigned char *buf, size_t size);
+extern ssize_t telnet_process(TelnetCtx *ctx, unsigned char *buf, ssize_t size);
#endif
diff --git a/mbbsd/telnet.c b/mbbsd/telnet.c
index f348f08c..d60254ac 100644
--- a/mbbsd/telnet.c
+++ b/mbbsd/telnet.c
@@ -55,7 +55,7 @@ tty_read(unsigned char *buf, size_t max)
if(l == 0 || (l < 0 && !(errno == EINTR || errno == EAGAIN)))
abort_bbs(0);
- if(!raw_connection)
+ if(!raw_connection || l <= 0)
return l;
l = telnet_process(ctx, buf, l);