[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH for-4.5] libxc: don't leak buffer containing the uncompressed PV kernel
On Mon, 2014-11-17 at 09:16 +0000, Wei Liu wrote: > > @@ -508,6 +522,10 @@ static int xc_try_lzo1x_decode( > > if ( out_len != dst_len ) > > break; > > > > + msg = "Error registering stream output"; > > + if ( xc_dom_register_external(dom, out_buf, out_len) ) > > + break; > > + > > Is this hunk problematic? > > It's called in a loop. Looks like it may register the same ptr multiple > times which leads to freeing same ptr multiple times later. Yes, it is wrong. I mistakenly read this as being the "input stream done" case, but it's just "a chunk is done". I think the right place to add this new code is actually in the if true part of: dst_len = lzo_read_32(cur); if ( !dst_len ) return 0; That's the only return within the loop, and any break would take us to the function epilogue which is the error case and frees the buffer. Thanks for checking! Ian. _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |