The current version of get_autostart seg faults. This patch
correctly passes a pointer to an int to virDomainGetAutostart
and returns a result based on the value of that int

Signed-off-by: sage Imel <s...@cat.pdx.edu>
---
 src/domain.rs | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/src/domain.rs b/src/domain.rs
index 11ecb3c..acb9e6e 100644
--- a/src/domain.rs
+++ b/src/domain.rs
@@ -136,7 +136,7 @@ extern "C" {
     fn virDomainGetHostname(ptr: sys::virDomainPtr, flags: libc::c_uint) -> 
*mut libc::c_char;
     fn virDomainGetUUIDString(ptr: sys::virDomainPtr, uuid: *mut libc::c_char) 
-> libc::c_int;
     fn virDomainGetXMLDesc(ptr: sys::virDomainPtr, flags: libc::c_uint) -> 
*mut libc::c_char;
-    fn virDomainGetAutostart(ptr: sys::virDomainPtr) -> libc::c_int;
+    fn virDomainGetAutostart(ptr: sys::virDomainPtr, autostart: *mut 
libc::c_int) -> libc::c_int;
     fn virDomainSetAutostart(ptr: sys::virDomainPtr, autostart: libc::c_uint) 
-> libc::c_int;
     fn virDomainGetID(ptr: sys::virDomainPtr) -> libc::c_uint;
     fn virDomainSetMaxMemory(ptr: sys::virDomainPtr, memory: libc::c_ulong) -> 
libc::c_int;
@@ -1036,11 +1036,12 @@ impl Domain {
 
     pub fn get_autostart(&self) -> Result<bool, Error> {
         unsafe {
-            let ret = virDomainGetAutostart(self.as_ptr());
+            let mut autostart: libc::c_int = 0;
+            let ret = virDomainGetAutostart(self.as_ptr(), &mut autostart);
             if ret == -1 {
                 return Err(Error::new());
             }
-            return Ok(ret == 1);
+            return Ok(autostart == 1);
         }
     }
 
-- 
2.17.1

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

Reply via email to