File valgrind.fix-xen_sysctl_numainfo-handling.patch of Package valgrind
From: Olaf Hering <olaf@aepfle.de>
Date: Fri, 16 Nov 2018 17:20:56 +0100
Subject: fix xen_sysctl_numainfo handling
The OUT value node_to_node_distance is a 2D array, not a 1D array
bz#390553
---
coregrind/m_syswrap/syswrap-xen.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
--- a/coregrind/m_syswrap/syswrap-xen.c
+++ b/coregrind/m_syswrap/syswrap-xen.c
@@ -1850,25 +1850,26 @@ POST(sysctl)
if (sysctl->u.topologyinfo.cpu_to_node.p)
POST_MEM_WRITE((Addr)sysctl->u.topologyinfo.cpu_to_node.p,
sizeof(uint32_t) * sysctl->u.topologyinfo.max_cpu_index);
break;
case VKI_XEN_SYSCTL_numainfo:
POST_XEN_SYSCTL_WRITE(numainfo, max_node_index);
POST_MEM_WRITE((Addr)sysctl->u.numainfo.node_to_memsize.p,
sizeof(uint64_t) * sysctl->u.numainfo.max_node_index);
POST_MEM_WRITE((Addr)sysctl->u.numainfo.node_to_memfree.p,
sizeof(uint64_t) * sysctl->u.numainfo.max_node_index);
POST_MEM_WRITE((Addr)sysctl->u.numainfo.node_to_node_distance.p,
- sizeof(uint32_t) * sysctl->u.numainfo.max_node_index);
+ sizeof(uint32_t) *
+ (sysctl->u.numainfo.max_node_index * sysctl->u.numainfo.max_node_index));
break;
/* No outputs */
case VKI_XEN_SYSCTL_debug_keys:
break;
}
#undef POST_XEN_SYSCTL_WRITE
#undef __POST_XEN_SYSCTL_WRITE
}
POST(domctl){
struct vki_xen_domctl *domctl = (struct vki_xen_domctl *)ARG1;