[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [Patch] x86/mm: Prevent leaking domain mappings in paging_log_dirty_op()
>>> On 10.12.13 at 14:53, Andrew Cooper <andrew.cooper3@xxxxxxxxxx> wrote: > Coverity ID: 1135374 1135375 1135376 1135377 > > If {copy_to,clear}_guest_offset() fails, we would leak the domain mappings > for > l4 thru l1. > > Fixing this requires having conditional unmaps on the faulting path, which > in > turn requires explicitly initialising the pointers to NULL because of the > early ENOMEM exit. > > Signed-off-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> Reviewed-by: Jan Beulich <jbeulich@xxxxxxxx> with a minor comment: > @@ -432,6 +432,15 @@ int paging_log_dirty_op(struct domain *d, struct > xen_domctl_shadow_op *sc) > return rv; > > out: > + if ( l1 ) > + unmap_domain_page(l1); > + if ( l2 ) > + unmap_domain_page(l2); > + if ( l3 ) > + unmap_domain_page(l3); > + if ( l4 ) > + unmap_domain_page(l4); > + > paging_unlock(d); > domain_unpause(d); > return rv; While on an error path, it would nevertheless seem better to do the unmaps after the unlock/unpause. Jan _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |