]> git.pond.sub.org Git - empserver/commitdiff
Fix client crash for long input lines
authorMarkus Armbruster <armbru@pond.sub.org>
Thu, 14 Apr 2011 05:48:14 +0000 (07:48 +0200)
committerMarkus Armbruster <armbru@pond.sub.org>
Thu, 14 Apr 2011 18:28:31 +0000 (20:28 +0200)
recv_input() misued lbuf_putc() and passed truncated lines without a
final newline to save_input(), failing the assertion in save_input().

src/client/play.c

index a8b294f62fb14e094b20d73369c81f80d6807c36..4979bae5b24c821296fed6f6bb0f841c2028de6f 100644 (file)
@@ -430,7 +430,7 @@ recv_input(int fd, struct ring *inbuf)
     for (i = -n; i < 0; i++) {
        ch = ring_peek(inbuf, i);
        assert(ch != EOF);
-       if (ch != '\r' && lbuf_putc(&cmdbuf, ch)) {
+       if (ch != '\r' && lbuf_putc(&cmdbuf, ch) > 0) {
            line = lbuf_line(&cmdbuf);
            if (auxfp)
                fputs(line, auxfp);