[libvirt] [PATCH] hostdev: add virObject field to virHostdevManager struct

Commit 6b306d66 converted virHostdevManager to a virObject, but missed adding a virObject field to the virHostdevManager struct. Result is memory corruption when taking a reference on an instance of the object, where atomic inc is done on the stateDir field. Later use of stateDir crashes libvirtd. Signed-off-by: Jim Fehlig <jfehlig@suse.com> --- src/util/virhostdev.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/util/virhostdev.h b/src/util/virhostdev.h index ade7e2f..a56a2b5 100644 --- a/src/util/virhostdev.h +++ b/src/util/virhostdev.h @@ -45,6 +45,8 @@ typedef enum { typedef struct _virHostdevManager virHostdevManager; typedef virHostdevManager *virHostdevManagerPtr; struct _virHostdevManager { + virObject parent; + char *stateDir; virPCIDeviceListPtr activePCIHostdevs; -- 1.8.1.4

On 03/12/2014 05:26 PM, Jim Fehlig wrote:
Commit 6b306d66 converted virHostdevManager to a virObject, but missed adding a virObject field to the virHostdevManager struct. Result is memory corruption when taking a reference on an instance of the object, where atomic inc is done on the stateDir field. Later use of stateDir crashes libvirtd.
Signed-off-by: Jim Fehlig <jfehlig@suse.com> --- src/util/virhostdev.h | 2 ++ 1 file changed, 2 insertions(+)
ACK.
diff --git a/src/util/virhostdev.h b/src/util/virhostdev.h index ade7e2f..a56a2b5 100644 --- a/src/util/virhostdev.h +++ b/src/util/virhostdev.h @@ -45,6 +45,8 @@ typedef enum { typedef struct _virHostdevManager virHostdevManager; typedef virHostdevManager *virHostdevManagerPtr; struct _virHostdevManager { + virObject parent; + char *stateDir;
virPCIDeviceListPtr activePCIHostdevs;
-- Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org

Eric Blake wrote:
On 03/12/2014 05:26 PM, Jim Fehlig wrote:
Commit 6b306d66 converted virHostdevManager to a virObject, but missed adding a virObject field to the virHostdevManager struct. Result is memory corruption when taking a reference on an instance of the object, where atomic inc is done on the stateDir field. Later use of stateDir crashes libvirtd.
Signed-off-by: Jim Fehlig <jfehlig@suse.com> --- src/util/virhostdev.h | 2 ++ 1 file changed, 2 insertions(+)
ACK.
Thanks, pushed. Regards, Jim
participants (2)
-
Eric Blake
-
Jim Fehlig