From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:34664) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZKJz7-0000ji-1d for qemu-devel@nongnu.org; Wed, 29 Jul 2015 01:32:57 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZKJz1-0004UH-QH for qemu-devel@nongnu.org; Wed, 29 Jul 2015 01:32:56 -0400 Received: from [59.151.112.132] (port=54971 helo=heian.cn.fujitsu.com) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZKJz1-0004SQ-4H for qemu-devel@nongnu.org; Wed, 29 Jul 2015 01:32:51 -0400 References: <20150728225701.GK3467@type.home> <1438124245-11667-1-git-send-email-samuel.thibault@ens-lyon.org> From: Wen Congyang Message-ID: <55B8657E.7000801@cn.fujitsu.com> Date: Wed, 29 Jul 2015 13:32:46 +0800 MIME-Version: 1.0 In-Reply-To: <1438124245-11667-1-git-send-email-samuel.thibault@ens-lyon.org> Content-Type: text/plain; charset="windows-1252" Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH 01/18] slirp: goto bad in udp_input if sosendto fails List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Samuel Thibault , qemu-devel@nongnu.org Cc: zhanghailiang , Li Zhijian , Stefan Hajnoczi , Jason Wang , Dave Gilbert , Vasiliy Tolstov , Huangpeng , Gonglei , Jan Kiszka , Yang Hongyang , Guillaume Subiron On 07/29/2015 06:57 AM, Samuel Thibault wrote: > Before this patch, if sosendto fails, udp_input is executed as if the > packet was sent, recording the packet for icmp errors, which does not > makes sense since the packet was not actually sent, errors would be > related to a previous packet. > > This patch adds a goto bad to cut the execution of this function. > > Signed-off-by: Guillaume Subiron > --- > slirp/debug.h | 2 +- > slirp/udp.c | 1 + > 2 files changed, 2 insertions(+), 1 deletion(-) > > diff --git a/slirp/debug.h b/slirp/debug.h > index 6cfa61e..c60f967 100644 > --- a/slirp/debug.h > +++ b/slirp/debug.h > @@ -5,7 +5,7 @@ > * terms and conditions of the copyright. > */ > > -//#define DEBUG 1 > +#define DEBUG 1 Why change this line? Thanks Wen Congyang > > #ifdef DEBUG > > diff --git a/slirp/udp.c b/slirp/udp.c > index f77e00f..ed78274 100644 > --- a/slirp/udp.c > +++ b/slirp/udp.c > @@ -218,6 +218,7 @@ udp_input(register struct mbuf *m, int iphlen) > *ip=save_ip; > DEBUG_MISC((dfd,"udp tx errno = %d-%s\n",errno,strerror(errno))); > icmp_error(m, ICMP_UNREACH,ICMP_UNREACH_NET, 0,strerror(errno)); > + goto bad; > } > > m_free(so->so_m); /* used for ICMP if error on sorecvfrom */ >