----- Original Message ----- > From: "wangyunjian" <wangyunj...@huawei.com> > To: "Paolo Bonzini" <pbonz...@redhat.com> > Cc: berra...@redhat.com, qemu-devel@nongnu.org, "caihe" <ca...@huawei.com> > Sent: Monday, October 17, 2016 4:17:45 PM > Subject: RE: A question about this commit "char: convert from GIOChannel to > QIOChannel" > > In function tcp_chr_close, the s->sioc needs call object_unref() to be > released ? > > About the below code: > > @@ -3205,10 +3205,13 @@ static void tcp_chr_close(CharDriverState *chr) > s->listen_tag = 0; > } > if (s->listen_ioc) { > object_unref(OBJECT(s->listen_ioc)); > } > + if (s->sioc) { > + object_unref(OBJECT(s->sioc)); > + } > if (s->read_msgfds_num) { > for (i = 0; i < s->read_msgfds_num; i++) { > close(s->read_msgfds[i]); > } > g_free(s->read_msgfds);
This is done in tcp_chr_free_connection. Maybe your tree does not have commit 5b498459b441f4639fd4c39c35345637bfc6c16c? Paolo > Thanks > > Yunjian > > -----Original Message----- > From: Paolo Bonzini [mailto:pbonz...@redhat.com] > Sent: Monday, October 17, 2016 9:20 PM > To: wangyunjian > Cc: berra...@redhat.com; qemu-devel@nongnu.org; caihe > Subject: Re: A question about this commit "char: convert from GIOChannel to > QIOChannel" > > > > ----- Original Message ----- > > From: "wangyunjian" <wangyunj...@huawei.com> > > To: berra...@redhat.com, pbonz...@redhat.com, qemu-devel@nongnu.org > > Cc: "caihe" <ca...@huawei.com> > > Sent: Monday, October 17, 2016 3:02:32 PM > > Subject: A question about this commit "char: convert from GIOChannel to > > QIOChannel" > > > > Commit 9894dc0cdcc397ee5b26370bc53da6d360a363c2 “char: convert from > > GIOChannel to QIOChannel”, the old version will call closesocket when > > tcp_chr_close and udp_chr_close are called. But the new version will > > not call closesocket. > > > > This can bring to a socket leak? > > Hi, closesocket is called in io/channel-socket.c > (qio_channel_socket_finalize). > > Thanks, > > Paolo >