[libvirt] [PATCH] Fix invalid write in virNumaGetDistances
Michal Privoznik
mprivozn at redhat.com
Mon Jun 23 11:51:42 UTC 2014
On 23.06.2014 11:53, Ján Tomko wrote:
> ==== Invalid write of size 4
> ==== at 0x52E678C: virNumaGetDistances (virnuma.c:479)
> ==== by 0x5396890: nodeCapsInitNUMA (nodeinfo.c:1796)
> ==== by 0x203C2B: virQEMUCapsInit (qemu_capabilities.c:960)
> ==== Address 0xe10a1e0 is 0 bytes after a block of size 0 alloc'd
> ==== at 0x4C2A6D0: calloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
> ==== by 0x52A10D6: virAllocN (viralloc.c:191)
> ==== by 0x52E674D: virNumaGetDistances (virnuma.c:470)
> ==== by 0x5396890: nodeCapsInitNUMA (nodeinfo.c:1796)
> ==== by 0x203C2B: virQEMUCapsInit (qemu_capabilities.c:960)
> ---
> src/util/virnuma.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/src/util/virnuma.c b/src/util/virnuma.c
> index c8e7f40..c494e17 100644
> --- a/src/util/virnuma.c
> +++ b/src/util/virnuma.c
> @@ -467,7 +467,7 @@ virNumaGetDistances(int node,
> if ((max_node = virNumaGetMaxNode()) < 0)
> goto cleanup;
>
> - if (VIR_ALLOC_N(*distances, max_node) < 0)
> + if (VIR_ALLOC_N(*distances, max_node + 1) < 0)
> goto cleanup;
>
> *ndistances = max_node + 1;
>
Oops.
ACK
Michal
More information about the libvir-list
mailing list