diff --git a/AUTHORS b/AUTHORS index a6e09f41a2..f2292074e3 100644 --- a/AUTHORS +++ b/AUTHORS @@ -156,6 +156,7 @@ Patches have also been contributed by: Michal Novotny Christophe Fergeau Markus Groß + Phil Petty [....send patches to get your name here....] diff --git a/src/conf/secret_conf.c b/src/conf/secret_conf.c index bbdad89a7e..fc4ae82d07 100644 --- a/src/conf/secret_conf.c +++ b/src/conf/secret_conf.c @@ -1,7 +1,7 @@ /* * secret_conf.c: internal XML handling * - * Copyright (C) 2009 Red Hat, Inc. + * Copyright (C) 2009, 2011 Red Hat, Inc. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -182,6 +182,7 @@ secretXMLParseNode(xmlDocPtr xml, xmlNodePtr root) cleanup: VIR_FREE(prop); + VIR_FREE(uuidstr); virSecretDefFree(def); xmlXPathFreeContext(ctxt); return ret; diff --git a/src/nwfilter/nwfilter_gentech_driver.c b/src/nwfilter/nwfilter_gentech_driver.c index facad13d1b..f89fb79b2b 100644 --- a/src/nwfilter/nwfilter_gentech_driver.c +++ b/src/nwfilter/nwfilter_gentech_driver.c @@ -1,6 +1,7 @@ /* * nwfilter_gentech_driver.c: generic technology driver * + * Copyright (C) 2011 Red Hat, Inc. * Copyright (C) 2010 IBM Corp. * Copyright (C) 2010 Stefan Berger * @@ -660,8 +661,6 @@ virNWFilterInstantiate(virConnectPtr conn, } virNWFilterUnlockIface(ifname); - - VIR_FREE(ptrs); } err_exit: @@ -670,6 +669,7 @@ err_exit: virNWFilterRuleInstFree(insts[j]); VIR_FREE(insts); + VIR_FREE(ptrs); virNWFilterHashTableFree(missing_vars); diff --git a/src/remote/remote_driver.c b/src/remote/remote_driver.c index 4ca52ba813..58d7f9642b 100644 --- a/src/remote/remote_driver.c +++ b/src/remote/remote_driver.c @@ -479,22 +479,27 @@ doRemoteOpen (virConnectPtr conn, for (i = 0; i < vars->n; i++) { var = &vars->p[i]; if (STRCASEEQ (var->name, "name")) { + VIR_FREE(name); name = strdup (var->value); if (!name) goto out_of_memory; var->ignore = 1; } else if (STRCASEEQ (var->name, "command")) { + VIR_FREE(command); command = strdup (var->value); if (!command) goto out_of_memory; var->ignore = 1; } else if (STRCASEEQ (var->name, "socket")) { + VIR_FREE(sockname); sockname = strdup (var->value); if (!sockname) goto out_of_memory; var->ignore = 1; } else if (STRCASEEQ (var->name, "auth")) { + VIR_FREE(authtype); authtype = strdup (var->value); if (!authtype) goto out_of_memory; var->ignore = 1; } else if (STRCASEEQ (var->name, "netcat")) { + VIR_FREE(netcat); netcat = strdup (var->value); if (!netcat) goto out_of_memory; var->ignore = 1; @@ -511,6 +516,7 @@ doRemoteOpen (virConnectPtr conn, else priv->debugLog = stderr; } else if (STRCASEEQ(var->name, "pkipath")) { + VIR_FREE(pkipath); pkipath = strdup(var->value); if (!pkipath) goto out_of_memory; var->ignore = 1; diff --git a/src/util/conf.c b/src/util/conf.c index d9a7603342..71a344fefd 100644 --- a/src/util/conf.c +++ b/src/util/conf.c @@ -1,7 +1,7 @@ /** * conf.c: parser for a subset of the Python encoded Xen configuration files * - * Copyright (C) 2006, 2007, 2008, 2009, 2010 Red Hat, Inc. + * Copyright (C) 2006-2011 Red Hat, Inc. * * See COPYING.LIB for the License of this software * @@ -648,22 +648,23 @@ virConfParseStatement(virConfParserCtxtPtr ctxt) SKIP_BLANKS_AND_EOL; if (CUR == '#') { - return(virConfParseComment(ctxt)); + return virConfParseComment(ctxt); } name = virConfParseName(ctxt); if (name == NULL) - return(-1); + return -1; SKIP_BLANKS; if (CUR != '=') { virConfError(ctxt, VIR_ERR_CONF_SYNTAX, _("expecting an assignment")); - return(-1); + VIR_FREE(name); + return -1; } NEXT; SKIP_BLANKS; value = virConfParseValue(ctxt); if (value == NULL) { VIR_FREE(name); - return(-1); + return -1; } SKIP_BLANKS; if (CUR == '#') { @@ -675,16 +676,16 @@ virConfParseStatement(virConfParserCtxtPtr ctxt) virReportOOMError(); VIR_FREE(name); virConfFreeValue(value); - return(-1); + return -1; } } if (virConfAddEntry(ctxt->conf, name, value, comm) == NULL) { VIR_FREE(name); virConfFreeValue(value); VIR_FREE(comm); - return(-1); + return -1; } - return(0); + return 0; } /** diff --git a/src/util/storage_file.c b/src/util/storage_file.c index 62dad0d8c4..ede79facf5 100644 --- a/src/util/storage_file.c +++ b/src/util/storage_file.c @@ -1,7 +1,7 @@ /* * storage_file.c: file utility functions for FS storage backend * - * Copyright (C) 2007-2010 Red Hat, Inc. + * Copyright (C) 2007-2011 Red Hat, Inc. * Copyright (C) 2007-2008 Daniel P. Berrange * * This library is free software; you can redistribute it and/or @@ -838,8 +838,9 @@ virStorageFileGetMetadataFromFD(const char *path, if (format < 0 || format >= VIR_STORAGE_FILE_LAST) { - virReportSystemError(EINVAL, _("unknown storage file format %d"), format); - return -1; + virReportSystemError(EINVAL, _("unknown storage file format %d"), + format); + goto cleanup; } ret = virStorageFileGetMetadataFromBuf(format, path, head, len, meta); diff --git a/src/util/xml.c b/src/util/xml.c index ff340d80a6..2c50e147be 100644 --- a/src/util/xml.c +++ b/src/util/xml.c @@ -105,9 +105,10 @@ virXPathStringLimit(const char *xpath, if (tmp != NULL && strlen(tmp) >= maxlen) { virXMLError(VIR_ERR_INTERNAL_ERROR, - _("\'%s\' value longer than %zd bytes in virXPathStringLimit()"), + _("\'%s\' value longer than %zd bytes"), xpath, maxlen); - return NULL; + VIR_FREE(tmp); + return NULL; } return tmp; diff --git a/tools/virsh.c b/tools/virsh.c index 62fca1722b..2555421316 100644 --- a/tools/virsh.c +++ b/tools/virsh.c @@ -9518,6 +9518,8 @@ cmdCd(vshControl *ctl, const vshCmd *cmd ATTRIBUTE_UNUSED) { const char *dir; int found; + int ret = TRUE; + bool dir_malloced = false; if (!ctl->imode) { vshError(ctl, "%s", _("cd: command valid only in interactive mode")); @@ -9528,16 +9530,19 @@ cmdCd(vshControl *ctl, const vshCmd *cmd ATTRIBUTE_UNUSED) if (!found) { uid_t uid = geteuid(); dir = virGetUserDirectory(uid); + dir_malloced = !!dir; } if (!dir) dir = "/"; - if (chdir (dir) == -1) { + if (chdir(dir) == -1) { vshError(ctl, _("cd: %s: %s"), strerror(errno), dir); - return FALSE; + ret = FALSE; } - return TRUE; + if (dir_malloced) + VIR_FREE(dir); + return ret; } #endif