|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH] dmar: device scope mem leak fix
>>> On 23.05.15 at 03:27, <elena.ufimtseva@xxxxxxxxxx> wrote:
> @@ -318,13 +321,13 @@ static int __init acpi_parse_dev_scope(
> if ( (cnt = scope_device_count(start, end)) < 0 )
> return cnt;
>
> - scope->devices_cnt = cnt;
> if ( cnt > 0 )
> {
> scope->devices = xzalloc_array(u16, cnt);
> if ( !scope->devices )
> return -ENOMEM;
> }
> + scope->devices_cnt = cnt;
Together with this, shouldn't you also clear ->devices_cnt along
with freeing ->devices on the error path at the end of the function?
> @@ -658,6 +661,7 @@ acpi_parse_one_rmrr(struct acpi_dmar_header *header)
> " Ignore the RMRR (%"PRIx64", %"PRIx64") due to "
> "devices under its scope are not PCI discoverable!\n",
> rmrru->base_address, rmrru->end_address);
> + xfree(rmrru->scope.devices);
> xfree(rmrru);
> }
> else if ( base_addr > end_addr )
> @@ -665,6 +669,7 @@ acpi_parse_one_rmrr(struct acpi_dmar_header *header)
> dprintk(XENLOG_WARNING VTDPREFIX,
> " The RMRR (%"PRIx64", %"PRIx64") is incorrect!\n",
> rmrru->base_address, rmrru->end_address);
> + xfree(rmrru->scope.devices);
> xfree(rmrru);
> ret = -EFAULT;
> }
Why not also in acpi_parse_one_drhd() (and for consistency also
acpi_parse_one_atsr(), even if only being a latent issue there right
now)?
Jan
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |