]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib: Fixed crash in connection API if input streams aren't used (only input fd).
authorTimo Sirainen <tss@iki.fi>
Sat, 25 Apr 2015 08:52:02 +0000 (11:52 +0300)
committerTimo Sirainen <tss@iki.fi>
Sat, 25 Apr 2015 08:52:02 +0000 (11:52 +0300)
src/lib/connection.c

index 72df867717a8a8c101496685a910372281b67b5d..d8b90992e8971371b40287bb500e3197d371fed1 100644 (file)
@@ -117,6 +117,9 @@ static void connection_init_streams(struct connection *conn)
                conn->input = i_stream_create_fd(conn->fd_in,
                                                 set->input_max_size, FALSE);
                i_stream_set_name(conn->input, conn->name);
+               conn->io = io_add_istream(conn->input, *conn->list->v.input, conn);
+       } else {
+               conn->io = io_add(conn->fd_in, IO_READ, *conn->list->v.input, conn);
        }
        if (set->output_max_size != 0) {
                conn->output = o_stream_create_fd(conn->fd_out,
@@ -124,7 +127,6 @@ static void connection_init_streams(struct connection *conn)
                o_stream_set_no_error_handling(conn->output, TRUE);
                o_stream_set_name(conn->output, conn->name);
        }
-       conn->io = io_add_istream(conn->input, *conn->list->v.input, conn);
        if (set->input_idle_timeout_secs != 0) {
                conn->to = timeout_add(set->input_idle_timeout_secs*1000,
                                       connection_idle_timeout, conn);