qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH] slirp: goto bad in udp_input if sosendto fails


From: Samuel Thibault
Subject: Re: [Qemu-devel] [PATCH] slirp: goto bad in udp_input if sosendto fails
Date: Sat, 14 Jun 2014 21:45:31 +0200
User-agent: Mutt/1.5.21+34 (58baf7c9f32f) (2010-12-30)

Jan Kiszka, le Thu 12 Jun 2014 07:47:25 +0200, a écrit :
> On 2014-06-11 10:55, Samuel Thibault wrote:
> > Before this patch, if sosendto fails, udp_input is executed as if the
> > packet was sent. This could cause memory leak.
> 
> Cannot follow yet how this could leak (not saying I fully got what it
> should NOT leak - nasty code). Can you elaborate on the before/after?

I haven't worked on the patch, but can comment a bit.

I'm not sure it's actually a memory leak, but the "before" situation is
quite confusing actually :)

Before, m->m_len += iphlen and m->m_data -= iphlen would be done twice
in the end, thus leaving m in an odd state.  At any rate, letting
udp_input put m into so->so_m does not make any sense: so->so_m is used
by icmp_receive/sorecvfrom to know where to send back any errors from
the outside for a packet that we have emitted.  Here, since we haven't
actually emitted the packet, there is not much sense in using it, and
any error that we may get later would rather be related to the previous
packet, not the one we haven't emitted.

Samuel



reply via email to

[Prev in Thread] Current Thread [Next in Thread]