diff --git a/src/scheduler/include/VirtualMachineXML.h b/src/scheduler/include/VirtualMachineXML.h index 1134bbf2c5..cd03c8fd1a 100644 --- a/src/scheduler/include/VirtualMachineXML.h +++ b/src/scheduler/include/VirtualMachineXML.h @@ -130,6 +130,11 @@ public: { delete user_template; } + + for (auto nic : nics) + { + delete nic.second; + } } //-------------------------------------------------------------------------- diff --git a/src/scheduler/src/pool/VirtualMachineXML.cc b/src/scheduler/src/pool/VirtualMachineXML.cc index d0610e81d9..34b947d363 100644 --- a/src/scheduler/src/pool/VirtualMachineXML.cc +++ b/src/scheduler/src/pool/VirtualMachineXML.cc @@ -161,6 +161,7 @@ void VirtualMachineXML::init_attributes() if ( !rc || net_mode != "AUTO" ) { + delete nic_template; continue; } diff --git a/src/vm/VirtualMachinePool.cc b/src/vm/VirtualMachinePool.cc index 90d28479db..826e1cb836 100644 --- a/src/vm/VirtualMachinePool.cc +++ b/src/vm/VirtualMachinePool.cc @@ -416,17 +416,21 @@ int VirtualMachinePool::get_vmid (const string& deploy_id) int vmid = -1; ostringstream oss; + auto sql_id = db->escape_str(deploy_id); + single_cb cb; cb.set_callback(&vmid); oss << "SELECT vmid FROM " << import_table - << " WHERE deploy_id = '" << db->escape_str(deploy_id) << "'"; + << " WHERE deploy_id = '" << sql_id << "'"; rc = db->exec_rd(oss, &cb); cb.unset_callback(); + db->free_str(sql_id); + if (rc != 0 ) { return -1;