Commit 9fc53a10 authored by linzhecheng's avatar linzhecheng Committed by Daniel P. Berrangé
Browse files

socket: don't free msgfds if error equals EAGAIN



If we see EAGAIN, no data was sent over the socket, so we still have to
retry sending of msgfds next time.

Signed-off-by: default avatarlinzhecheng <linzhecheng@huawei.com>
Signed-off-by: default avatarDaniel P. Berrangé <berrange@redhat.com>
parent 00928a42
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -134,8 +134,8 @@ static int tcp_chr_write(Chardev *chr, const uint8_t *buf, int len)
                                        s->write_msgfds,
                                        s->write_msgfds_num);

        /* free the written msgfds, no matter what */
        if (s->write_msgfds_num) {
        /* free the written msgfds in any cases other than errno==EAGAIN */
        if (EAGAIN != errno && s->write_msgfds_num) {
            g_free(s->write_msgfds);
            s->write_msgfds = 0;
            s->write_msgfds_num = 0;