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: linzhecheng <linzhecheng@huawei.com> Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
This commit is contained in:
parent
00928a421d
commit
9fc53a10f8
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user