mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-01-21 20:15:17 +00:00
Add virBufferFreeAndReset() and replace free()
Replace free(virBufferContentAndReset()) with virBufferFreeAndReset(). Update documentation and replace all remaining calls to free() with calls to VIR_FREE(). Also add missing calls to virBufferFreeAndReset() and virReportOOMError() in OOM error cases.
This commit is contained in:
parent
723bfda1ce
commit
1b9d074493
5
HACKING
5
HACKING
@ -293,10 +293,11 @@ eg typical usage is as follows:
|
||||
...
|
||||
virBufferAddLit(&buf, "</domain>\n");
|
||||
|
||||
....
|
||||
...
|
||||
|
||||
if (virBufferError(&buf)) {
|
||||
__virRaiseError(...);
|
||||
virBufferFreeAndReset(&buf);
|
||||
virReportOOMError(...);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
@ -582,7 +582,7 @@ static int qemudListenUnix(struct qemud_server *server,
|
||||
cleanup:
|
||||
if (sock->fd)
|
||||
close(sock->fd);
|
||||
free(sock);
|
||||
VIR_FREE(sock);
|
||||
return -1;
|
||||
}
|
||||
|
||||
@ -803,8 +803,8 @@ static int qemudInitPaths(struct qemud_server *server,
|
||||
_("Resulting path too long for buffer in qemudInitPaths()"));
|
||||
|
||||
cleanup:
|
||||
free (dir_prefix);
|
||||
free (sock_dir_prefix);
|
||||
VIR_FREE(dir_prefix);
|
||||
VIR_FREE(sock_dir_prefix);
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -1452,8 +1452,7 @@ void qemudDispatchClientFailure(struct qemud_client *client) {
|
||||
sasl_dispose(&client->saslconn);
|
||||
client->saslconn = NULL;
|
||||
}
|
||||
free(client->saslUsername);
|
||||
client->saslUsername = NULL;
|
||||
VIR_FREE(client->saslUsername);
|
||||
#endif
|
||||
if (client->tlssession) {
|
||||
gnutls_deinit (client->tlssession);
|
||||
@ -2374,19 +2373,19 @@ static void qemudCleanup(struct qemud_server *server) {
|
||||
if (sock->watch)
|
||||
virEventRemoveHandleImpl(sock->watch);
|
||||
close(sock->fd);
|
||||
free(sock);
|
||||
VIR_FREE(sock);
|
||||
sock = next;
|
||||
}
|
||||
free(server->logDir);
|
||||
VIR_FREE(server->logDir);
|
||||
|
||||
#ifdef HAVE_SASL
|
||||
if (server->saslUsernameWhitelist) {
|
||||
char **list = server->saslUsernameWhitelist;
|
||||
while (*list) {
|
||||
free(*list);
|
||||
VIR_FREE(*list);
|
||||
list++;
|
||||
}
|
||||
free(server->saslUsernameWhitelist);
|
||||
VIR_FREE(server->saslUsernameWhitelist);
|
||||
}
|
||||
#endif
|
||||
|
||||
@ -2743,10 +2742,9 @@ remoteReadConfigFile (struct qemud_server *server, const char *filename)
|
||||
goto free_and_fail;
|
||||
}
|
||||
unix_sock_gid = grp->gr_gid;
|
||||
VIR_FREE (buf);
|
||||
VIR_FREE(buf);
|
||||
}
|
||||
free (unix_sock_group);
|
||||
unix_sock_group = NULL;
|
||||
VIR_FREE(unix_sock_group);
|
||||
}
|
||||
|
||||
GET_CONF_STR (conf, filename, unix_sock_ro_perms);
|
||||
@ -2755,8 +2753,7 @@ remoteReadConfigFile (struct qemud_server *server, const char *filename)
|
||||
VIR_ERROR(_("Failed to parse mode '%s'"), unix_sock_ro_perms);
|
||||
goto free_and_fail;
|
||||
}
|
||||
free (unix_sock_ro_perms);
|
||||
unix_sock_ro_perms = NULL;
|
||||
VIR_FREE(unix_sock_ro_perms);
|
||||
}
|
||||
|
||||
GET_CONF_STR (conf, filename, unix_sock_rw_perms);
|
||||
@ -2765,8 +2762,7 @@ remoteReadConfigFile (struct qemud_server *server, const char *filename)
|
||||
VIR_ERROR(_("Failed to parse mode '%s'"), unix_sock_rw_perms);
|
||||
goto free_and_fail;
|
||||
}
|
||||
free (unix_sock_rw_perms);
|
||||
unix_sock_rw_perms = NULL;
|
||||
VIR_FREE(unix_sock_rw_perms);
|
||||
}
|
||||
|
||||
GET_CONF_STR (conf, filename, unix_sock_dir);
|
||||
@ -2801,12 +2797,11 @@ remoteReadConfigFile (struct qemud_server *server, const char *filename)
|
||||
|
||||
free_and_fail:
|
||||
virConfFree (conf);
|
||||
free (mdns_name);
|
||||
mdns_name = NULL;
|
||||
free (unix_sock_ro_perms);
|
||||
free (unix_sock_rw_perms);
|
||||
free (unix_sock_group);
|
||||
VIR_FREE (buf);
|
||||
VIR_FREE(mdns_name);
|
||||
VIR_FREE(unix_sock_ro_perms);
|
||||
VIR_FREE(unix_sock_rw_perms);
|
||||
VIR_FREE(unix_sock_group);
|
||||
VIR_FREE(buf);
|
||||
|
||||
/* Don't bother trying to free listen_addr, tcp_port, tls_port, key_file,
|
||||
cert_file, ca_file, or crl_file, since they are initialized to
|
||||
@ -2817,9 +2812,8 @@ remoteReadConfigFile (struct qemud_server *server, const char *filename)
|
||||
if (tls_allowed_dn_list) {
|
||||
int i;
|
||||
for (i = 0; tls_allowed_dn_list[i]; i++)
|
||||
free (tls_allowed_dn_list[i]);
|
||||
free (tls_allowed_dn_list);
|
||||
tls_allowed_dn_list = NULL;
|
||||
VIR_FREE(tls_allowed_dn_list[i]);
|
||||
VIR_FREE(tls_allowed_dn_list);
|
||||
}
|
||||
|
||||
return -1;
|
||||
|
@ -306,14 +306,15 @@
|
||||
...
|
||||
|
||||
virBufferAddLit(&buf, "<domain>\n");
|
||||
virBufferVSprint(&buf, " <memory>%d</memory>\n", memory);
|
||||
virBufferVSprint(&buf, " <memory>%d</memory>\n", memory);
|
||||
...
|
||||
virBufferAddLit(&buf, "</domain>\n");
|
||||
|
||||
....
|
||||
...
|
||||
|
||||
if (virBufferError(&buf)) {
|
||||
__virRaiseError(...);
|
||||
virBufferFreeAndReset(&buf);
|
||||
virReportOOMError(...);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
@ -769,8 +769,10 @@ virCapabilitiesFormatXML(virCapsPtr caps)
|
||||
|
||||
virBufferAddLit(&xml, "</capabilities>\n");
|
||||
|
||||
if (virBufferError(&xml))
|
||||
if (virBufferError(&xml)) {
|
||||
virBufferFreeAndReset(&xml);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
return virBufferContentAndReset(&xml);
|
||||
}
|
||||
|
@ -3723,6 +3723,7 @@ virDomainCpuSetFormat(virConnectPtr conn, char *cpuset, int maxcpu)
|
||||
}
|
||||
|
||||
if (virBufferError(&buf)) {
|
||||
virBufferFreeAndReset(&buf);
|
||||
virReportOOMError(conn);
|
||||
return NULL;
|
||||
}
|
||||
@ -4531,7 +4532,7 @@ char *virDomainDefFormat(virConnectPtr conn,
|
||||
virBuffer buf = VIR_BUFFER_INITIALIZER;
|
||||
unsigned char *uuid;
|
||||
char uuidstr[VIR_UUID_STRING_BUFLEN];
|
||||
const char *type = NULL, *tmp;
|
||||
const char *type = NULL;
|
||||
int n, allones = 1;
|
||||
|
||||
if (!(type = virDomainVirtTypeToString(def->virtType))) {
|
||||
@ -4787,8 +4788,7 @@ char *virDomainDefFormat(virConnectPtr conn,
|
||||
no_memory:
|
||||
virReportOOMError(conn);
|
||||
cleanup:
|
||||
tmp = virBufferContentAndReset(&buf);
|
||||
VIR_FREE(tmp);
|
||||
virBufferFreeAndReset(&buf);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@ -4797,7 +4797,7 @@ char *virDomainObjFormat(virConnectPtr conn,
|
||||
virDomainObjPtr obj,
|
||||
int flags)
|
||||
{
|
||||
char *config_xml = NULL, *xml = NULL;
|
||||
char *config_xml = NULL;
|
||||
virBuffer buf = VIR_BUFFER_INITIALIZER;
|
||||
|
||||
virBufferVSprintf(&buf, "<domstatus state='%s' pid='%d'>\n",
|
||||
@ -4825,8 +4825,7 @@ char *virDomainObjFormat(virConnectPtr conn,
|
||||
no_memory:
|
||||
virReportOOMError(conn);
|
||||
error:
|
||||
xml = virBufferContentAndReset(&buf);
|
||||
VIR_FREE(xml);
|
||||
virBufferFreeAndReset(&buf);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
@ -1208,7 +1208,7 @@ char *virInterfaceDefFormat(virConnectPtr conn,
|
||||
const virInterfaceDefPtr def)
|
||||
{
|
||||
virBuffer buf = VIR_BUFFER_INITIALIZER;
|
||||
const char *type = NULL, *tmp;
|
||||
const char *type = NULL;
|
||||
|
||||
if ((def == NULL) ||
|
||||
((def->name == NULL) && (def->type != VIR_INTERFACE_TYPE_VLAN))) {
|
||||
@ -1271,8 +1271,7 @@ char *virInterfaceDefFormat(virConnectPtr conn,
|
||||
no_memory:
|
||||
virReportOOMError(conn);
|
||||
cleanup:
|
||||
tmp = virBufferContentAndReset(&buf);
|
||||
VIR_FREE(tmp);
|
||||
virBufferFreeAndReset(&buf);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
@ -642,7 +642,6 @@ char *virNetworkDefFormat(virConnectPtr conn,
|
||||
{
|
||||
virBuffer buf = VIR_BUFFER_INITIALIZER;
|
||||
unsigned char *uuid;
|
||||
char *tmp;
|
||||
char uuidstr[VIR_UUID_STRING_BUFLEN];
|
||||
|
||||
virBufferAddLit(&buf, "<network>\n");
|
||||
@ -731,8 +730,7 @@ char *virNetworkDefFormat(virConnectPtr conn,
|
||||
|
||||
no_memory:
|
||||
virReportOOMError(conn);
|
||||
tmp = virBufferContentAndReset(&buf);
|
||||
VIR_FREE(tmp);
|
||||
virBufferFreeAndReset(&buf);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
@ -246,7 +246,6 @@ char *virNodeDeviceDefFormat(virConnectPtr conn,
|
||||
{
|
||||
virBuffer buf = VIR_BUFFER_INITIALIZER;
|
||||
virNodeDevCapsDefPtr caps;
|
||||
char *tmp;
|
||||
|
||||
virBufferAddLit(&buf, "<device>\n");
|
||||
virBufferEscapeString(&buf, " <name>%s</name>\n", def->name);
|
||||
@ -464,8 +463,7 @@ char *virNodeDeviceDefFormat(virConnectPtr conn,
|
||||
|
||||
no_memory:
|
||||
virReportOOMError(conn);
|
||||
tmp = virBufferContentAndReset(&buf);
|
||||
VIR_FREE(tmp);
|
||||
virBufferFreeAndReset(&buf);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
@ -303,7 +303,6 @@ virSecretDefFormat(virConnectPtr conn, const virSecretDefPtr def)
|
||||
virBuffer buf = VIR_BUFFER_INITIALIZER;
|
||||
unsigned char *uuid;
|
||||
char uuidstr[VIR_UUID_STRING_BUFLEN];
|
||||
char *tmp;
|
||||
|
||||
virBufferVSprintf(&buf, "<secret ephemeral='%s' private='%s'>\n",
|
||||
def->ephemeral ? "yes" : "no",
|
||||
@ -328,7 +327,6 @@ virSecretDefFormat(virConnectPtr conn, const virSecretDefPtr def)
|
||||
no_memory:
|
||||
virReportOOMError(conn);
|
||||
error:
|
||||
tmp = virBufferContentAndReset(&buf);
|
||||
VIR_FREE(tmp);
|
||||
virBufferFreeAndReset(&buf);
|
||||
return NULL;
|
||||
}
|
||||
|
@ -954,7 +954,7 @@ virStoragePoolDefFormat(virConnectPtr conn,
|
||||
no_memory:
|
||||
virReportOOMError(conn);
|
||||
cleanup:
|
||||
free(virBufferContentAndReset(&buf));
|
||||
virBufferFreeAndReset(&buf);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@ -1292,7 +1292,6 @@ virStorageVolDefFormat(virConnectPtr conn,
|
||||
virStorageVolDefPtr def) {
|
||||
virStorageVolOptionsPtr options;
|
||||
virBuffer buf = VIR_BUFFER_INITIALIZER;
|
||||
char *tmp;
|
||||
|
||||
options = virStorageVolOptionsForPoolType(pool->type);
|
||||
if (options == NULL)
|
||||
@ -1351,8 +1350,7 @@ virStorageVolDefFormat(virConnectPtr conn,
|
||||
no_memory:
|
||||
virReportOOMError(conn);
|
||||
cleanup:
|
||||
tmp = virBufferContentAndReset(&buf);
|
||||
VIR_FREE(tmp);
|
||||
virBufferFreeAndReset(&buf);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@ -1742,7 +1740,7 @@ char *virStoragePoolSourceListFormat(virConnectPtr conn,
|
||||
no_memory:
|
||||
virReportOOMError(conn);
|
||||
cleanup:
|
||||
free(virBufferContentAndReset(&buf));
|
||||
virBufferFreeAndReset(&buf);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
@ -2293,6 +2293,7 @@ esxDomainDumpXML(virDomainPtr domain, int flags)
|
||||
return xml;
|
||||
|
||||
failure:
|
||||
virBufferFreeAndReset(&buffer);
|
||||
VIR_FREE(xml);
|
||||
|
||||
goto cleanup;
|
||||
@ -2723,6 +2724,8 @@ esxDomainDefineXML(virConnectPtr conn, const char *xml ATTRIBUTE_UNUSED)
|
||||
return domain;
|
||||
|
||||
failure:
|
||||
virBufferFreeAndReset(&buffer);
|
||||
|
||||
domain = NULL;
|
||||
|
||||
goto cleanup;
|
||||
|
@ -532,7 +532,7 @@ esxVI_Context_DownloadFile(virConnectPtr conn, esxVI_Context *ctx,
|
||||
return 0;
|
||||
|
||||
failure:
|
||||
free(virBufferContentAndReset(&buffer));
|
||||
virBufferFreeAndReset(&buffer);
|
||||
|
||||
return -1;
|
||||
}
|
||||
@ -708,7 +708,7 @@ esxVI_Context_Execute(virConnectPtr conn, esxVI_Context *ctx,
|
||||
return 0;
|
||||
|
||||
failure:
|
||||
free(virBufferContentAndReset(&buffer));
|
||||
virBufferFreeAndReset(&buffer);
|
||||
esxVI_Response_Free(response);
|
||||
esxVI_Fault_Free(&fault);
|
||||
|
||||
@ -2065,7 +2065,7 @@ esxVI_StartSimpleVirtualMachineTask
|
||||
return result;
|
||||
|
||||
failure:
|
||||
free(virBufferContentAndReset(&buffer));
|
||||
virBufferFreeAndReset(&buffer);
|
||||
|
||||
result = -1;
|
||||
|
||||
@ -2124,9 +2124,7 @@ esxVI_SimpleVirtualMachineMethod(virConnectPtr conn, esxVI_Context *ctx,
|
||||
return result;
|
||||
|
||||
failure:
|
||||
if (request == NULL) {
|
||||
request = virBufferContentAndReset(&buffer);
|
||||
}
|
||||
virBufferFreeAndReset(&buffer);
|
||||
|
||||
result = -1;
|
||||
|
||||
|
@ -158,9 +158,7 @@ esxVI_Login(virConnectPtr conn, esxVI_Context *ctx,
|
||||
return result;
|
||||
|
||||
failure:
|
||||
if (request == NULL) {
|
||||
request = virBufferContentAndReset(&buffer);
|
||||
}
|
||||
virBufferFreeAndReset(&buffer);
|
||||
|
||||
result = -1;
|
||||
|
||||
@ -214,9 +212,7 @@ esxVI_Logout(virConnectPtr conn, esxVI_Context *ctx)
|
||||
return result;
|
||||
|
||||
failure:
|
||||
if (request == NULL) {
|
||||
request = virBufferContentAndReset(&buffer);
|
||||
}
|
||||
virBufferFreeAndReset(&buffer);
|
||||
|
||||
result = -1;
|
||||
|
||||
@ -283,9 +279,7 @@ esxVI_SessionIsActive(virConnectPtr conn, esxVI_Context *ctx,
|
||||
return result;
|
||||
|
||||
failure:
|
||||
if (request == NULL) {
|
||||
request = virBufferContentAndReset(&buffer);
|
||||
}
|
||||
virBufferFreeAndReset(&buffer);
|
||||
|
||||
result = -1;
|
||||
|
||||
@ -352,9 +346,7 @@ esxVI_RetrieveProperties(virConnectPtr conn, esxVI_Context *ctx,
|
||||
return result;
|
||||
|
||||
failure:
|
||||
if (request == NULL) {
|
||||
request = virBufferContentAndReset(&buffer);
|
||||
}
|
||||
virBufferFreeAndReset(&buffer);
|
||||
|
||||
result = -1;
|
||||
|
||||
@ -451,9 +443,7 @@ esxVI_MigrateVM_Task(virConnectPtr conn, esxVI_Context *ctx,
|
||||
return result;
|
||||
|
||||
failure:
|
||||
if (request == NULL) {
|
||||
request = virBufferContentAndReset(&buffer);
|
||||
}
|
||||
virBufferFreeAndReset(&buffer);
|
||||
|
||||
result = -1;
|
||||
|
||||
@ -509,9 +499,7 @@ esxVI_ReconfigVM_Task(virConnectPtr conn, esxVI_Context *ctx,
|
||||
return result;
|
||||
|
||||
failure:
|
||||
if (request == NULL) {
|
||||
request = virBufferContentAndReset(&buffer);
|
||||
}
|
||||
virBufferFreeAndReset(&buffer);
|
||||
|
||||
result = -1;
|
||||
|
||||
@ -579,9 +567,7 @@ esxVI_RegisterVM_Task(virConnectPtr conn, esxVI_Context *ctx,
|
||||
return result;
|
||||
|
||||
failure:
|
||||
if (request == NULL) {
|
||||
request = virBufferContentAndReset(&buffer);
|
||||
}
|
||||
virBufferFreeAndReset(&buffer);
|
||||
|
||||
result = -1;
|
||||
|
||||
@ -630,9 +616,7 @@ esxVI_UnregisterVM(virConnectPtr conn, esxVI_Context *ctx,
|
||||
return result;
|
||||
|
||||
failure:
|
||||
if (request == NULL) {
|
||||
request = virBufferContentAndReset(&buffer);
|
||||
}
|
||||
virBufferFreeAndReset(&buffer);
|
||||
|
||||
result = -1;
|
||||
|
||||
@ -702,9 +686,7 @@ esxVI_CreateFilter(virConnectPtr conn, esxVI_Context *ctx,
|
||||
return result;
|
||||
|
||||
failure:
|
||||
if (request == NULL) {
|
||||
request = virBufferContentAndReset(&buffer);
|
||||
}
|
||||
virBufferFreeAndReset(&buffer);
|
||||
|
||||
result = -1;
|
||||
|
||||
@ -758,9 +740,7 @@ esxVI_DestroyPropertyFilter(virConnectPtr conn, esxVI_Context *ctx,
|
||||
return result;
|
||||
|
||||
failure:
|
||||
if (request == NULL) {
|
||||
request = virBufferContentAndReset(&buffer);
|
||||
}
|
||||
virBufferFreeAndReset(&buffer);
|
||||
|
||||
result = -1;
|
||||
|
||||
@ -824,9 +804,7 @@ esxVI_WaitForUpdates(virConnectPtr conn, esxVI_Context *ctx,
|
||||
return result;
|
||||
|
||||
failure:
|
||||
if (request == NULL) {
|
||||
request = virBufferContentAndReset(&buffer);
|
||||
}
|
||||
virBufferFreeAndReset(&buffer);
|
||||
|
||||
result = -1;
|
||||
|
||||
@ -928,9 +906,7 @@ esxVI_ValidateMigration(virConnectPtr conn, esxVI_Context *ctx,
|
||||
return result;
|
||||
|
||||
failure:
|
||||
if (request == NULL) {
|
||||
request = virBufferContentAndReset(&buffer);
|
||||
}
|
||||
virBufferFreeAndReset(&buffer);
|
||||
|
||||
result = -1;
|
||||
|
||||
@ -1003,9 +979,7 @@ esxVI_FindByIp(virConnectPtr conn, esxVI_Context *ctx,
|
||||
return result;
|
||||
|
||||
failure:
|
||||
if (request == NULL) {
|
||||
request = virBufferContentAndReset(&buffer);
|
||||
}
|
||||
virBufferFreeAndReset(&buffer);
|
||||
|
||||
result = -1;
|
||||
|
||||
@ -1089,9 +1063,7 @@ esxVI_FindByUuid(virConnectPtr conn, esxVI_Context *ctx,
|
||||
return result;
|
||||
|
||||
failure:
|
||||
if (request == NULL) {
|
||||
request = virBufferContentAndReset(&buffer);
|
||||
}
|
||||
virBufferFreeAndReset(&buffer);
|
||||
|
||||
result = -1;
|
||||
|
||||
@ -1165,9 +1137,7 @@ esxVI_QueryAvailablePerfMetric(virConnectPtr conn, esxVI_Context *ctx,
|
||||
return result;
|
||||
|
||||
failure:
|
||||
if (request == NULL) {
|
||||
request = virBufferContentAndReset(&buffer);
|
||||
}
|
||||
virBufferFreeAndReset(&buffer);
|
||||
|
||||
result = -1;
|
||||
|
||||
@ -1232,9 +1202,7 @@ esxVI_QueryPerfCounter(virConnectPtr conn, esxVI_Context *ctx,
|
||||
return result;
|
||||
|
||||
failure:
|
||||
if (request == NULL) {
|
||||
request = virBufferContentAndReset(&buffer);
|
||||
}
|
||||
virBufferFreeAndReset(&buffer);
|
||||
|
||||
result = -1;
|
||||
|
||||
@ -1299,9 +1267,7 @@ esxVI_QueryPerf(virConnectPtr conn, esxVI_Context *ctx,
|
||||
return result;
|
||||
|
||||
failure:
|
||||
if (request == NULL) {
|
||||
request = virBufferContentAndReset(&buffer);
|
||||
}
|
||||
virBufferFreeAndReset(&buffer);
|
||||
|
||||
result = -1;
|
||||
|
||||
|
@ -2124,7 +2124,6 @@ esxVMX_FormatConfig(virConnectPtr conn, esxVI_Context *ctx,
|
||||
int sched_cpu_affinity_length;
|
||||
unsigned char zero[VIR_UUID_BUFLEN];
|
||||
virBuffer buffer = VIR_BUFFER_INITIALIZER;
|
||||
char *vmx = NULL;
|
||||
|
||||
memset(zero, 0, VIR_UUID_BUFLEN);
|
||||
|
||||
@ -2347,16 +2346,10 @@ esxVMX_FormatConfig(virConnectPtr conn, esxVI_Context *ctx,
|
||||
goto failure;
|
||||
}
|
||||
|
||||
vmx = virBufferContentAndReset(&buffer);
|
||||
|
||||
return vmx;
|
||||
return virBufferContentAndReset(&buffer);
|
||||
|
||||
failure:
|
||||
if (vmx == NULL) {
|
||||
vmx = virBufferContentAndReset(&buffer);
|
||||
}
|
||||
|
||||
VIR_FREE(vmx);
|
||||
virBufferFreeAndReset(&buffer);
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
@ -12,6 +12,7 @@ virBufferAddChar;
|
||||
virBufferContentAndReset;
|
||||
virBufferError;
|
||||
virBufferURIEncodeString;
|
||||
virBufferFreeAndReset;
|
||||
|
||||
|
||||
# caps.h
|
||||
|
@ -323,6 +323,7 @@ static int udevGenerateDeviceName(struct udev_device *device,
|
||||
}
|
||||
|
||||
if (virBufferError(&buf)) {
|
||||
virBufferFreeAndReset(&buf);
|
||||
VIR_ERROR("Buffer error when generating device name for device "
|
||||
"with sysname '%s'\n", udev_device_get_sysname(device));
|
||||
ret = -1;
|
||||
|
@ -26,6 +26,7 @@
|
||||
#include "one_client.h"
|
||||
#include "datatypes.h"
|
||||
#include "util.h"
|
||||
#include "memory.h"
|
||||
|
||||
oneClient one_client;
|
||||
|
||||
@ -54,12 +55,12 @@ int c_oneReturnCode(xmlrpc_value *resultP)
|
||||
if( return_code )
|
||||
{
|
||||
xmlrpc_DECREF(resultP);
|
||||
free(return_string);
|
||||
VIR_FREE(return_string);
|
||||
return 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
free(one_client.error);
|
||||
VIR_FREE(one_client.error);
|
||||
|
||||
one_client.error=return_string;
|
||||
return -1;
|
||||
@ -125,7 +126,7 @@ int c_oneAllocateTemplate(char* vm_template)
|
||||
xmlrpc_DECREF(valueP);
|
||||
xmlrpc_DECREF(resultP);
|
||||
|
||||
free(one_client.error);
|
||||
VIR_FREE(one_client.error);
|
||||
|
||||
one_client.error=return_string;
|
||||
return -1;
|
||||
@ -194,7 +195,7 @@ int c_oneVmInfo(int vmid, char* ret_info, int length)
|
||||
}
|
||||
|
||||
xmlrpc_DECREF(resultP);
|
||||
free(return_string);
|
||||
VIR_FREE(return_string);
|
||||
|
||||
return retval;
|
||||
}
|
||||
|
@ -278,7 +278,6 @@ char* xmlOneTemplate(virConnectPtr conn,virDomainDefPtr def)
|
||||
|
||||
no_memory:
|
||||
virReportOOMError(conn);
|
||||
char* tmp = virBufferContentAndReset(&buf);
|
||||
VIR_FREE(tmp);
|
||||
virBufferFreeAndReset(&buf);
|
||||
return NULL;
|
||||
};
|
||||
|
@ -345,10 +345,12 @@ openvz_replace(const char* str,
|
||||
str_start = offset + from_len;
|
||||
}
|
||||
|
||||
virBufferAdd(&buf, str_start, strlen(str_start));
|
||||
virBufferAdd(&buf, str_start, -1);
|
||||
|
||||
if(virBufferError(&buf))
|
||||
return NULL;
|
||||
if (virBufferError(&buf)) {
|
||||
virBufferFreeAndReset(&buf);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
return virBufferContentAndReset(&buf);
|
||||
}
|
||||
|
@ -792,8 +792,7 @@ openvzDomainSetNetworkConfig(virConnectPtr conn,
|
||||
return 0;
|
||||
|
||||
exit:
|
||||
param = virBufferContentAndReset(&buf);
|
||||
VIR_FREE(param);
|
||||
virBufferFreeAndReset(&buf);
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
@ -486,13 +486,12 @@ phypExec(LIBSSH2_SESSION * session, char *cmd, int *exit_status,
|
||||
|
||||
err:
|
||||
(*exit_status) = SSH_CMD_ERR;
|
||||
char *cleanup_buf = virBufferContentAndReset(&tex_ret);
|
||||
|
||||
VIR_FREE(cleanup_buf);
|
||||
virBufferFreeAndReset(&tex_ret);
|
||||
return NULL;
|
||||
|
||||
exit:
|
||||
if (virBufferError(&tex_ret)) {
|
||||
virBufferFreeAndReset(&tex_ret);
|
||||
virReportOOMError(conn);
|
||||
return NULL;
|
||||
}
|
||||
|
@ -1379,6 +1379,7 @@ qemuBuildHostNetStr(virConnectPtr conn,
|
||||
type_sep = ','; /* dead-store, but leave it, in case... */
|
||||
}
|
||||
if (virBufferError(&buf)) {
|
||||
virBufferFreeAndReset(&buf);
|
||||
virReportOOMError(conn);
|
||||
return -1;
|
||||
}
|
||||
@ -1866,8 +1867,10 @@ int qemudBuildCommandLine(virConnectPtr conn,
|
||||
virBufferAddLit(&buf, "control,");
|
||||
|
||||
qemudBuildCommandLineChrDevStr(monitor_chr, &buf);
|
||||
if (virBufferError(&buf))
|
||||
goto error;
|
||||
if (virBufferError(&buf)) {
|
||||
virBufferFreeAndReset(&buf);
|
||||
goto no_memory;
|
||||
}
|
||||
|
||||
ADD_ARG_LIT("-monitor");
|
||||
ADD_ARG(virBufferContentAndReset(&buf));
|
||||
@ -2054,8 +2057,8 @@ int qemudBuildCommandLine(virConnectPtr conn,
|
||||
}
|
||||
|
||||
if (virBufferError(&opt)) {
|
||||
virReportOOMError(conn);
|
||||
goto error;
|
||||
virBufferFreeAndReset(&opt);
|
||||
goto no_memory;
|
||||
}
|
||||
|
||||
optstr = virBufferContentAndReset(&opt);
|
||||
@ -2197,8 +2200,10 @@ int qemudBuildCommandLine(virConnectPtr conn,
|
||||
virDomainChrDefPtr serial = def->serials[i];
|
||||
|
||||
qemudBuildCommandLineChrDevStr(serial, &buf);
|
||||
if (virBufferError(&buf))
|
||||
goto error;
|
||||
if (virBufferError(&buf)) {
|
||||
virBufferFreeAndReset(&buf);
|
||||
goto no_memory;
|
||||
}
|
||||
|
||||
ADD_ARG_LIT("-serial");
|
||||
ADD_ARG(virBufferContentAndReset(&buf));
|
||||
@ -2214,8 +2219,10 @@ int qemudBuildCommandLine(virConnectPtr conn,
|
||||
virDomainChrDefPtr parallel = def->parallels[i];
|
||||
|
||||
qemudBuildCommandLineChrDevStr(parallel, &buf);
|
||||
if (virBufferError(&buf))
|
||||
goto error;
|
||||
if (virBufferError(&buf)) {
|
||||
virBufferFreeAndReset(&buf);
|
||||
goto no_memory;
|
||||
}
|
||||
|
||||
ADD_ARG_LIT("-parallel");
|
||||
ADD_ARG(virBufferContentAndReset(&buf));
|
||||
@ -2240,8 +2247,10 @@ int qemudBuildCommandLine(virConnectPtr conn,
|
||||
}
|
||||
|
||||
qemudBuildCommandLineChrDevChardevStr(channel, id, &buf);
|
||||
if (virBufferError(&buf))
|
||||
goto error;
|
||||
if (virBufferError(&buf)) {
|
||||
virBufferFreeAndReset(&buf);
|
||||
goto no_memory;
|
||||
}
|
||||
|
||||
ADD_ARG_LIT("-chardev");
|
||||
ADD_ARG(virBufferContentAndReset(&buf));
|
||||
@ -2254,8 +2263,10 @@ int qemudBuildCommandLine(virConnectPtr conn,
|
||||
|
||||
VIR_FREE(addr);
|
||||
|
||||
if (virBufferError(&buf))
|
||||
goto error;
|
||||
if (virBufferError(&buf)) {
|
||||
virBufferFreeAndReset(&buf);
|
||||
goto no_memory;
|
||||
}
|
||||
|
||||
ADD_ARG_LIT("-net");
|
||||
ADD_ARG(virBufferContentAndReset(&buf));
|
||||
@ -2313,8 +2324,10 @@ int qemudBuildCommandLine(virConnectPtr conn,
|
||||
virBufferVSprintf(&opt, "%d",
|
||||
def->graphics[0]->data.vnc.port - 5900);
|
||||
}
|
||||
if (virBufferError(&opt))
|
||||
if (virBufferError(&opt)) {
|
||||
virBufferFreeAndReset(&opt);
|
||||
goto no_memory;
|
||||
}
|
||||
|
||||
optstr = virBufferContentAndReset(&opt);
|
||||
|
||||
|
@ -4491,8 +4491,11 @@ static char *qemuDomainXMLToNative(virConnectPtr conn,
|
||||
tmp++;
|
||||
}
|
||||
|
||||
if (virBufferError(&buf))
|
||||
if (virBufferError(&buf)) {
|
||||
virBufferFreeAndReset(&buf);
|
||||
virReportOOMError(conn);
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
ret = virBufferContentAndReset(&buf);
|
||||
|
||||
|
@ -1424,10 +1424,10 @@ retry:
|
||||
|
||||
|
||||
/* Free hostname copy */
|
||||
free (priv->hostname);
|
||||
VIR_FREE(priv->hostname);
|
||||
|
||||
/* See comment for remoteType. */
|
||||
free (priv->type);
|
||||
VIR_FREE(priv->type);
|
||||
|
||||
/* Free callback list */
|
||||
virDomainEventCallbackListFree(priv->callbackList);
|
||||
@ -3411,7 +3411,7 @@ remoteDomainBlockPeek (virDomainPtr domain,
|
||||
rv = 0;
|
||||
|
||||
cleanup:
|
||||
free (ret.buffer.buffer_val);
|
||||
VIR_FREE(ret.buffer.buffer_val);
|
||||
|
||||
done:
|
||||
remoteDriverUnlock(priv);
|
||||
@ -3462,7 +3462,7 @@ remoteDomainMemoryPeek (virDomainPtr domain,
|
||||
rv = 0;
|
||||
|
||||
cleanup:
|
||||
free (ret.buffer.buffer_val);
|
||||
VIR_FREE(ret.buffer.buffer_val);
|
||||
|
||||
done:
|
||||
remoteDriverUnlock(priv);
|
||||
|
@ -77,8 +77,8 @@ mcsRemove(const char *mcs)
|
||||
else {
|
||||
mcsList = ptr->next;
|
||||
}
|
||||
free(ptr->mcs);
|
||||
free(ptr);
|
||||
VIR_FREE(ptr->mcs);
|
||||
VIR_FREE(ptr);
|
||||
return 0;
|
||||
}
|
||||
prevptr = ptr;
|
||||
@ -293,7 +293,7 @@ SELinuxGetSecurityLabel(virConnectPtr conn,
|
||||
}
|
||||
|
||||
strcpy(sec->label, (char *) ctx);
|
||||
free(ctx);
|
||||
VIR_FREE(ctx);
|
||||
|
||||
sec->enforcing = security_getenforce();
|
||||
if (sec->enforcing == -1) {
|
||||
|
@ -64,10 +64,10 @@ vahDeinit(vahControl * ctl)
|
||||
VIR_FREE(ctl->def);
|
||||
if (ctl->caps)
|
||||
virCapabilitiesFree(ctl->caps);
|
||||
free(ctl->files);
|
||||
free(ctl->hvm);
|
||||
free(ctl->arch);
|
||||
free(ctl->newdisk);
|
||||
VIR_FREE(ctl->files);
|
||||
VIR_FREE(ctl->hvm);
|
||||
VIR_FREE(ctl->arch);
|
||||
VIR_FREE(ctl->newdisk);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@ -761,7 +761,7 @@ vah_add_file(virBufferPtr buf, const char *path, const char *perms)
|
||||
}
|
||||
|
||||
clean:
|
||||
free(tmp);
|
||||
VIR_FREE(tmp);
|
||||
|
||||
return rc;
|
||||
}
|
||||
@ -883,8 +883,9 @@ get_files(vahControl * ctl)
|
||||
goto clean;
|
||||
|
||||
if (virBufferError(&buf)) {
|
||||
vah_error(NULL, 0, "failed to allocate file buffer");
|
||||
goto clean;
|
||||
virBufferFreeAndReset(&buf);
|
||||
vah_error(NULL, 0, "failed to allocate file buffer");
|
||||
goto clean;
|
||||
}
|
||||
|
||||
rc = 0;
|
||||
@ -1048,8 +1049,10 @@ main(int argc, char **argv)
|
||||
if (ctl->files)
|
||||
virBufferVSprintf(&buf, "%s", ctl->files);
|
||||
|
||||
if (virBufferError(&buf))
|
||||
if (virBufferError(&buf)) {
|
||||
virBufferFreeAndReset(&buf);
|
||||
vah_error(ctl, 1, "failed to allocate buffer");
|
||||
}
|
||||
|
||||
included_files = virBufferContentAndReset(&buf);
|
||||
|
||||
|
@ -445,8 +445,7 @@ cleanup:
|
||||
conn->secretDriver->undefine(secret);
|
||||
virSecretFree(secret);
|
||||
}
|
||||
xml = virBufferContentAndReset(&buf);
|
||||
VIR_FREE(xml);
|
||||
virBufferFreeAndReset(&buf);
|
||||
virSecretDefFree(def);
|
||||
VIR_FREE(enc_secret);
|
||||
return ret;
|
||||
@ -1317,8 +1316,7 @@ virStorageBackendRunProgNul(virConnectPtr conn,
|
||||
goto cleanup;
|
||||
n_tok = 0;
|
||||
for (i = 0; i < n_columns; i++) {
|
||||
free (v[i]);
|
||||
v[i] = NULL;
|
||||
VIR_FREE(v[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1331,8 +1329,8 @@ virStorageBackendRunProgNul(virConnectPtr conn,
|
||||
|
||||
cleanup:
|
||||
for (i = 0; i < n_columns; i++)
|
||||
free (v[i]);
|
||||
free (v);
|
||||
VIR_FREE(v[i]);
|
||||
VIR_FREE(v);
|
||||
|
||||
if (fp)
|
||||
fclose (fp);
|
||||
|
@ -422,8 +422,7 @@ storageListDefinedPools(virConnectPtr conn,
|
||||
cleanup:
|
||||
storageDriverUnlock(driver);
|
||||
for (i = 0 ; i < got ; i++) {
|
||||
free(names[i]);
|
||||
names[i] = NULL;
|
||||
VIR_FREE(names[i]);
|
||||
}
|
||||
memset(names, 0, nnames * sizeof(*names));
|
||||
return -1;
|
||||
|
@ -163,7 +163,6 @@ umlBuildCommandLineNet(virConnectPtr conn,
|
||||
virDomainNetDefPtr def,
|
||||
int idx)
|
||||
{
|
||||
char *ret;
|
||||
virBuffer buf = VIR_BUFFER_INITIALIZER;
|
||||
|
||||
/* General format: ethNN=type,options */
|
||||
@ -265,8 +264,7 @@ umlBuildCommandLineNet(virConnectPtr conn,
|
||||
return virBufferContentAndReset(&buf);
|
||||
|
||||
error:
|
||||
ret = virBufferContentAndReset(&buf);
|
||||
VIR_FREE(ret);
|
||||
virBufferFreeAndReset(&buf);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
@ -166,6 +166,19 @@ virBufferContentAndReset(const virBufferPtr buf)
|
||||
return str;
|
||||
}
|
||||
|
||||
/**
|
||||
* virBufferFreeAndReset:
|
||||
* @buf: the buffer to free and reset
|
||||
*
|
||||
* Frees the buffer content and resets the buffer structure.
|
||||
*/
|
||||
void virBufferFreeAndReset(const virBufferPtr buf)
|
||||
{
|
||||
char *str = virBufferContentAndReset(buf);
|
||||
|
||||
VIR_FREE(str);
|
||||
}
|
||||
|
||||
/**
|
||||
* virBufferError:
|
||||
* @buf: the buffer
|
||||
|
@ -35,6 +35,7 @@ struct _virBuffer {
|
||||
#endif
|
||||
|
||||
char *virBufferContentAndReset(const virBufferPtr buf);
|
||||
void virBufferFreeAndReset(const virBufferPtr buf);
|
||||
int virBufferError(const virBufferPtr buf);
|
||||
unsigned int virBufferUse(const virBufferPtr buf);
|
||||
void virBufferAdd(const virBufferPtr buf, const char *str, int len);
|
||||
|
@ -927,15 +927,15 @@ virConfWriteFile(const char *filename, virConfPtr conf)
|
||||
}
|
||||
|
||||
if (virBufferError(&buf)) {
|
||||
virBufferFreeAndReset(&buf);
|
||||
virReportOOMError(NULL);
|
||||
return -1;
|
||||
}
|
||||
|
||||
fd = open(filename, O_WRONLY | O_CREAT | O_TRUNC, S_IRUSR | S_IWUSR );
|
||||
if (fd < 0) {
|
||||
char *tmp = virBufferContentAndReset(&buf);
|
||||
virBufferFreeAndReset(&buf);
|
||||
virConfError(NULL, VIR_ERR_WRITE_FAILED, _("failed to open file"));
|
||||
VIR_FREE(tmp);
|
||||
return -1;
|
||||
}
|
||||
|
||||
@ -983,6 +983,7 @@ virConfWriteMem(char *memory, int *len, virConfPtr conf)
|
||||
}
|
||||
|
||||
if (virBufferError(&buf)) {
|
||||
virBufferFreeAndReset(&buf);
|
||||
virReportOOMError(NULL);
|
||||
return -1;
|
||||
}
|
||||
|
@ -867,8 +867,10 @@ char *virLogGetFilters(void) {
|
||||
}
|
||||
virLogUnlock();
|
||||
|
||||
if (virBufferError(&filterbuf))
|
||||
if (virBufferError(&filterbuf)) {
|
||||
virBufferFreeAndReset(&filterbuf);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
return virBufferContentAndReset(&filterbuf);
|
||||
}
|
||||
@ -905,8 +907,10 @@ char *virLogGetOutputs(void) {
|
||||
}
|
||||
virLogUnlock();
|
||||
|
||||
if (virBufferError(&outputbuf))
|
||||
if (virBufferError(&outputbuf)) {
|
||||
virBufferFreeAndReset(&outputbuf);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
return virBufferContentAndReset(&outputbuf);
|
||||
}
|
||||
|
@ -154,6 +154,7 @@ qparam_get_query (const struct qparam_set *ps)
|
||||
}
|
||||
|
||||
if (virBufferError(&buf)) {
|
||||
virBufferFreeAndReset(&buf);
|
||||
virReportOOMError(NULL);
|
||||
return NULL;
|
||||
}
|
||||
|
@ -936,7 +936,7 @@ saferead_lim (int fd, size_t max_len, size_t *length)
|
||||
}
|
||||
}
|
||||
|
||||
free (buf);
|
||||
VIR_FREE(buf);
|
||||
errno = save_errno;
|
||||
return NULL;
|
||||
}
|
||||
|
@ -345,10 +345,10 @@ virResetError(virErrorPtr err)
|
||||
{
|
||||
if (err == NULL)
|
||||
return;
|
||||
free(err->message);
|
||||
free(err->str1);
|
||||
free(err->str2);
|
||||
free(err->str3);
|
||||
VIR_FREE(err->message);
|
||||
VIR_FREE(err->str1);
|
||||
VIR_FREE(err->str2);
|
||||
VIR_FREE(err->str3);
|
||||
memset(err, 0, sizeof(virError));
|
||||
}
|
||||
|
||||
|
@ -156,12 +156,12 @@ check_bd_connected (xenUnifiedPrivatePtr priv, int device, int domid)
|
||||
* string instead of an error. Assume it's not connected
|
||||
* in this case.
|
||||
*/
|
||||
free (rs);
|
||||
VIR_FREE(rs);
|
||||
return 0;
|
||||
}
|
||||
|
||||
r = STREQ (rs, "4");
|
||||
free (rs);
|
||||
VIR_FREE(rs);
|
||||
return r;
|
||||
}
|
||||
|
||||
|
@ -525,6 +525,7 @@ xend_op_ext(virConnectPtr xend, const char *path, char *error,
|
||||
}
|
||||
|
||||
if (virBufferError(&buf)) {
|
||||
virBufferFreeAndReset(&buf);
|
||||
virReportOOMError(NULL);
|
||||
return -1;
|
||||
}
|
||||
@ -5293,8 +5294,10 @@ xenDaemonFormatSxprChr(virConnectPtr conn,
|
||||
break;
|
||||
}
|
||||
|
||||
if (virBufferError(buf))
|
||||
if (virBufferError(buf)) {
|
||||
virReportOOMError(conn);
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
@ -5634,8 +5637,10 @@ xenDaemonFormatSxprSound(virConnectPtr conn,
|
||||
virBufferVSprintf(buf, "%s%s", i ? "," : "", str);
|
||||
}
|
||||
|
||||
if (virBufferError(buf))
|
||||
if (virBufferError(buf)) {
|
||||
virReportOOMError(conn);
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
@ -5910,14 +5915,13 @@ xenDaemonFormatSxpr(virConnectPtr conn,
|
||||
|
||||
if (virBufferError(&buf)) {
|
||||
virReportOOMError(conn);
|
||||
return NULL;
|
||||
goto error;
|
||||
}
|
||||
|
||||
return virBufferContentAndReset(&buf);
|
||||
|
||||
error:
|
||||
tmp = virBufferContentAndReset(&buf);
|
||||
VIR_FREE(tmp);
|
||||
virBufferFreeAndReset(&buf);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@ -5964,7 +5968,7 @@ virDomainXMLDevID(virDomainPtr domain,
|
||||
return -1;
|
||||
|
||||
tmp = virStrcpy(ref, xref, ref_len);
|
||||
free(xref);
|
||||
VIR_FREE(xref);
|
||||
if (tmp == NULL)
|
||||
return -1;
|
||||
} else if (dev->type == VIR_DOMAIN_DEVICE_NET) {
|
||||
@ -5984,7 +5988,7 @@ virDomainXMLDevID(virDomainPtr domain,
|
||||
return -1;
|
||||
|
||||
tmp = virStrcpy(ref, xref, ref_len);
|
||||
free(xref);
|
||||
VIR_FREE(xref);
|
||||
if (tmp == NULL)
|
||||
return -1;
|
||||
} else if (dev->type == VIR_DOMAIN_DEVICE_HOSTDEV &&
|
||||
|
@ -1750,6 +1750,7 @@ int xenXMDomainPinVcpu(virDomainPtr domain,
|
||||
}
|
||||
|
||||
if (virBufferError(&mapbuf)) {
|
||||
virBufferFreeAndReset(&mapbuf);
|
||||
virReportOOMError(domain->conn);
|
||||
goto cleanup;
|
||||
}
|
||||
@ -1980,7 +1981,6 @@ static int xenXMDomainConfigFormatDisk(virConnectPtr conn,
|
||||
{
|
||||
virBuffer buf = VIR_BUFFER_INITIALIZER;
|
||||
virConfValuePtr val, tmp;
|
||||
char *str;
|
||||
|
||||
if(disk->src) {
|
||||
if (disk->driverName) {
|
||||
@ -2021,7 +2021,7 @@ static int xenXMDomainConfigFormatDisk(virConnectPtr conn,
|
||||
|
||||
if (virBufferError(&buf)) {
|
||||
virReportOOMError(conn);
|
||||
return -1;
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
if (VIR_ALLOC(val) < 0) {
|
||||
@ -2042,8 +2042,7 @@ static int xenXMDomainConfigFormatDisk(virConnectPtr conn,
|
||||
return 0;
|
||||
|
||||
cleanup:
|
||||
str = virBufferContentAndReset(&buf);
|
||||
VIR_FREE(str);
|
||||
virBufferFreeAndReset(&buf);
|
||||
return -1;
|
||||
}
|
||||
|
||||
@ -2054,7 +2053,6 @@ static int xenXMDomainConfigFormatNet(virConnectPtr conn,
|
||||
{
|
||||
virBuffer buf = VIR_BUFFER_INITIALIZER;
|
||||
virConfValuePtr val, tmp;
|
||||
char *str;
|
||||
xenUnifiedPrivatePtr priv = (xenUnifiedPrivatePtr) conn->privateData;
|
||||
|
||||
virBufferVSprintf(&buf, "mac=%02x:%02x:%02x:%02x:%02x:%02x",
|
||||
@ -2131,8 +2129,10 @@ static int xenXMDomainConfigFormatNet(virConnectPtr conn,
|
||||
virBufferVSprintf(&buf, ",vifname=%s",
|
||||
net->ifname);
|
||||
|
||||
if (virBufferError(&buf))
|
||||
if (virBufferError(&buf)) {
|
||||
virReportOOMError(conn);
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
if (VIR_ALLOC(val) < 0) {
|
||||
virReportOOMError(conn);
|
||||
@ -2152,8 +2152,7 @@ static int xenXMDomainConfigFormatNet(virConnectPtr conn,
|
||||
return 0;
|
||||
|
||||
cleanup:
|
||||
str = virBufferContentAndReset(&buf);
|
||||
VIR_FREE(str);
|
||||
virBufferFreeAndReset(&buf);
|
||||
return -1;
|
||||
}
|
||||
|
||||
@ -2482,8 +2481,10 @@ virConfPtr xenXMDomainConfigFormat(virConnectPtr conn,
|
||||
virBufferVSprintf(&buf, ",keymap=%s",
|
||||
def->graphics[0]->data.vnc.keymap);
|
||||
}
|
||||
if (virBufferError(&buf))
|
||||
if (virBufferError(&buf)) {
|
||||
virBufferFreeAndReset(&buf);
|
||||
goto no_memory;
|
||||
}
|
||||
|
||||
vfbstr = virBufferContentAndReset(&buf);
|
||||
|
||||
|
@ -434,7 +434,7 @@ xenStoreGetDomainInfo(virDomainPtr domain, virDomainInfoPtr info)
|
||||
if (tmp != NULL) {
|
||||
if (tmp[0] == '1')
|
||||
info->state = VIR_DOMAIN_RUNNING;
|
||||
free(tmp);
|
||||
VIR_FREE(tmp);
|
||||
} else {
|
||||
info->state = VIR_DOMAIN_NOSTATE;
|
||||
}
|
||||
@ -442,7 +442,7 @@ xenStoreGetDomainInfo(virDomainPtr domain, virDomainInfoPtr info)
|
||||
if (tmp != NULL) {
|
||||
info->memory = atol(tmp);
|
||||
info->maxMem = atol(tmp);
|
||||
free(tmp);
|
||||
VIR_FREE(tmp);
|
||||
} else {
|
||||
info->memory = 0;
|
||||
info->maxMem = 0;
|
||||
@ -452,7 +452,7 @@ xenStoreGetDomainInfo(virDomainPtr domain, virDomainInfoPtr info)
|
||||
tmp = virDomainDoStoreQuery(domain->conn, domain->id, "cpu_time");
|
||||
if (tmp != NULL) {
|
||||
info->cpuTime = atol(tmp);
|
||||
free(tmp);
|
||||
VIR_FREE(tmp);
|
||||
} else {
|
||||
info->cpuTime = 0;
|
||||
}
|
||||
@ -462,7 +462,7 @@ xenStoreGetDomainInfo(virDomainPtr domain, virDomainInfoPtr info)
|
||||
tmp2 = virConnectDoStoreList(domain->conn, request, &nb_vcpus);
|
||||
if (tmp2 != NULL) {
|
||||
info->nrVirtCpu = nb_vcpus;
|
||||
free(tmp2);
|
||||
VIR_FREE(tmp2);
|
||||
}
|
||||
return (0);
|
||||
}
|
||||
@ -698,7 +698,7 @@ xenStoreLookupByName(virConnectPtr conn, const char *name)
|
||||
tmp = xs_read(priv->xshandle, 0, prop, &len);
|
||||
if (tmp != NULL) {
|
||||
found = STREQ (name, tmp);
|
||||
free(tmp);
|
||||
VIR_FREE(tmp);
|
||||
if (found)
|
||||
break;
|
||||
}
|
||||
@ -713,8 +713,8 @@ xenStoreLookupByName(virConnectPtr conn, const char *name)
|
||||
ret->id = id;
|
||||
|
||||
done:
|
||||
free(xenddomain);
|
||||
free(idlist);
|
||||
VIR_FREE(xenddomain);
|
||||
VIR_FREE(idlist);
|
||||
|
||||
return(ret);
|
||||
}
|
||||
@ -843,7 +843,7 @@ int xenStoreDomainGetVNCPort(virConnectPtr conn, int domid) {
|
||||
ret = strtol(tmp, &end, 10);
|
||||
if (ret == 0 && end == tmp)
|
||||
ret = -1;
|
||||
free(tmp);
|
||||
VIR_FREE(tmp);
|
||||
}
|
||||
return(ret);
|
||||
}
|
||||
@ -903,7 +903,7 @@ xenStoreDomainGetOSTypeID(virConnectPtr conn, int id) {
|
||||
if (vm) {
|
||||
snprintf(query, 199, "%s/image/ostype", vm);
|
||||
str = xs_read(priv->xshandle, 0, &query[0], &len);
|
||||
free(vm);
|
||||
VIR_FREE(vm);
|
||||
}
|
||||
if (str == NULL)
|
||||
str = strdup("linux");
|
||||
|
@ -3800,7 +3800,7 @@ static int buildPoolXML(const vshCmd *cmd, char **retname, char **xml) {
|
||||
return TRUE;
|
||||
|
||||
cleanup:
|
||||
free(virBufferContentAndReset(&buf));
|
||||
virBufferFreeAndReset(&buf);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
@ -4663,7 +4663,7 @@ cmdVolCreateAs(vshControl *ctl, const vshCmd *cmd)
|
||||
}
|
||||
|
||||
cleanup:
|
||||
free(virBufferContentAndReset(&buf));
|
||||
virBufferFreeAndReset(&buf);
|
||||
virStoragePoolFree(pool);
|
||||
return FALSE;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user