From: Joel Rosdahl Date: Sat, 7 Jan 2012 15:01:45 +0000 (+0100) Subject: Fix minor memory leaks X-Git-Tag: v3.1.7~4 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=ac3b048c652c24c6e4d55cacfdfeaacb41b35450;p=thirdparty%2Fccache.git Fix minor memory leaks --- diff --git a/ccache.c b/ccache.c index a8a050e63..915138af0 100644 --- a/ccache.c +++ b/ccache.c @@ -857,7 +857,9 @@ calculate_common_hash(struct args *args, struct mdfour *hash) * behave differently depending on the real name. */ hash_delimiter(hash, "cc_name"); - hash_string(hash, basename(args->argv[0])); + p = basename(args->argv[0]); + hash_string(hash, p); + free(p); /* Possibly hash the current working directory. */ if (getenv("CCACHE_HASHDIR")) { diff --git a/manifest.c b/manifest.c index fcc163d65..335874b78 100644 --- a/manifest.c +++ b/manifest.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2009-2010 Joel Rosdahl + * Copyright (C) 2009-2010, 2012 Joel Rosdahl * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free @@ -133,6 +133,7 @@ free_manifest(struct manifest *mf) free(mf->objects[i].file_info_indexes); } free(mf->objects); + free(mf); } #define READ_INT(size, var) \ diff --git a/util.c b/util.c index 1be5f0811..3086b2c62 100644 --- a/util.c +++ b/util.c @@ -1,6 +1,6 @@ /* * Copyright (C) 2002 Andrew Tridgell - * Copyright (C) 2009-2011 Joel Rosdahl + * Copyright (C) 2009-2012 Joel Rosdahl * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free @@ -1101,15 +1101,19 @@ x_unlink(const char *path) * file. We don't care if the temp file is trashed, so it's always safe to * unlink it first. */ - const char* tmp_name = format("%s.%s.rmXXXXXX", path, tmp_string()); + char* tmp_name = format("%s.%s.rmXXXXXX", path, tmp_string()); + int result = 0; cc_log("Unlink %s via %s", path, tmp_name); if (x_rename(path, tmp_name) == -1) { - return -1; + result = -1; + goto out; } if (unlink(tmp_name) == -1) { - return -1; + result = -1; } - return 0; +out: + free(tmp_name); + return result; } #ifndef _WIN32