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

[libvirt] [PATCH] virDomainGetAutostart takes a pointer that it writes the output value to



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 <sage 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


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