libxl__initiate_device_remove() had a preexisting error path issue where
libxl_dominfo_dispose() could be called on a libxl_dominfo object before it
had been initialised with libxl_dominfo_init().
This was safe until c/s
ab44401 added the pointer ssid_label, which point
libxl_dominfo_dispose() free()s.
Unconditionally initialise info in libxl__initiate_device_remove() before
taking an error path which will free it.
Coverity-ID:
1223212
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
CC: Wei Liu <wei.liu2@citrix.com>
CC: Ian Campbell <Ian.Campbell@citrix.com>
CC: Ian Jackson <Ian.Jackson@eu.citrix.com>
uint32_t my_domid, domid = aodev->dev->domid;
int rc = 0;
+ libxl_dominfo_init(&info);
+
rc = libxl__get_domid(gc, &my_domid);
if (rc) {
LOG(ERROR, "unable to get my domid");
}
if (my_domid == LIBXL_TOOLSTACK_DOMID) {
- libxl_dominfo_init(&info);
rc = libxl_domain_info(CTX, &info, domid);
if (rc) {
LOG(ERROR, "unable to get info for domain %d", domid);