[libvirt] [PATCH] Fix segfault in GetIOThreadInfo

Leonid Podolny leonid at podolny.net
Wed Jan 18 17:46:53 UTC 2017


The pointers calculation included a typo which caused segfaults.

Signed-off-by: Leonid Podolny <leonid at podolny.net>
---
 domain.go | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/domain.go b/domain.go
index 515138a..74061c2 100644
--- a/domain.go
+++ b/domain.go
@@ -3887,7 +3887,7 @@ func (d *Domain) GetIOThreadInfo(flags DomainModificationImpact) ([]DomainIOThre
 	info := make([]DomainIOThreadInfo, int(ret))
 
 	for i := 0; i < int(ret); i++ {
-		cinfo := (*(**C.virDomainIOThreadInfo)(unsafe.Pointer(uintptr(unsafe.Pointer(cinfolist)) + (unsafe.Sizeof(*cinfolist) + uintptr(i)))))
+		cinfo := (*(**C.virDomainIOThreadInfo)(unsafe.Pointer(uintptr(unsafe.Pointer(cinfolist)) + (unsafe.Sizeof(*cinfolist) * uintptr(i)))))
 
 		ncpus := int(cinfo.cpumaplen * 8)
 		cpumap := make([]bool, ncpus)
-- 
2.11.0




More information about the libvir-list mailing list