Commit 8b2ec54f authored by Peter Xu's avatar Peter Xu Committed by Paolo Bonzini
Browse files

chardev: fix leak in tcp_chr_telnet_init_io()



Need to free TCPChardevTelnetInit when session established.

Since at it, switch to use G_SOURCE_* macros.

Reviewed-by: default avatarDaniel P. Berrange <berrange@redhat.com>
Signed-off-by: default avatarPeter Xu <peterx@redhat.com>
Message-Id: <20180301084438.13594-2-peterx@redhat.com>
Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
parent 26b97f26
Loading
Loading
Loading
Loading
+7 −3
Original line number Diff line number Diff line
@@ -592,19 +592,23 @@ static gboolean tcp_chr_telnet_init_io(QIOChannel *ioc,
            ret = 0;
        } else {
            tcp_chr_disconnect(init->chr);
            return FALSE;
            goto end;
        }
    }
    init->buflen -= ret;

    if (init->buflen == 0) {
        tcp_chr_connect(init->chr);
        return FALSE;
        goto end;
    }

    memmove(init->buf, init->buf + ret, init->buflen);

    return TRUE;
    return G_SOURCE_CONTINUE;

end:
    g_free(init);
    return G_SOURCE_REMOVE;
}

static void tcp_chr_telnet_init(Chardev *chr)