Re: [PATCH] Fix crash in virNetDevGetVirtualFunctions

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

 



On 04/09/2013 12:15 PM, Laine Stump wrote:
> Commit 9a3ff01d7f16cc280ce3176620c0714f55511a65 (which was ACKed at
> the end of January, but for some reason didn't get pushed until during
> the 1.0.4 freeze) fixed the logic in virPCIGetVirtualFunctions().
> Unfortunately, a typo in the fix (replacing VIR_REALLOC_N with
> VIR_ALLOC_N during code movement) caused not only a memory leak, but
> also resulted in most of the elements of the result array being
> replaced with NULL. virNetDevGetVirtualFunctions() assumed (and I think
> rightly so) that virPCIGetVirtualFunctions() wouldn't return any NULL
> elements in the array, so it ended up segfaulting.

What a difference two characters makes.

>  src/util/virpci.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/src/util/virpci.c b/src/util/virpci.c
> index a0da1cd..85cd694 100644
> --- a/src/util/virpci.c
> +++ b/src/util/virpci.c
> @@ -2026,8 +2026,8 @@ virPCIGetVirtualFunctions(const char *sysfs_path,
>                  continue;
>              }
>  
> -            if (VIR_ALLOC_N(*virtual_functions,
> -                            *num_virtual_functions + 1) < 0) {
> +            if (VIR_REALLOC_N(*virtual_functions,
> +                              *num_virtual_functions + 1) < 0) {
>                  virReportOOMError();

ACK.

-- 
Eric Blake   eblake redhat com    +1-919-301-3266
Libvirt virtualization library http://libvirt.org

Attachment: signature.asc
Description: OpenPGP digital signature

--
libvir-list mailing list
libvir-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/libvir-list

[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]