]> git.ipfire.org Git - thirdparty/ccache.git/commitdiff
Plug some minor memory leaks
authorJoel Rosdahl <joel@rosdahl.net>
Fri, 30 Jul 2010 19:48:28 +0000 (21:48 +0200)
committerJoel Rosdahl <joel@rosdahl.net>
Sun, 1 Aug 2010 15:20:14 +0000 (17:20 +0200)
ccache.c
test/main.c
util.c

index c0200462ae0eaa5d445e45ae55fc6351f67611fa..e9d291275dd9fced3f53a446f0f5236a4f45f56e 100644 (file)
--- a/ccache.c
+++ b/ccache.c
@@ -1472,6 +1472,7 @@ cc_process_args(struct args *orig_args, struct args **preprocessor_args,
                if (i < argc - 1) {
                        if (strcmp(argv[i], "-MF") == 0) {
                                dependency_filename_specified = 1;
+                               free(output_dep);
                                output_dep = make_relative_path(x_strdup(argv[i + 1]));
                                args_add(dep_args, argv[i]);
                                args_add(dep_args, argv[i + 1]);
@@ -1489,6 +1490,7 @@ cc_process_args(struct args *orig_args, struct args **preprocessor_args,
                        if (strncmp(argv[i], "-Wp,-MD,", 8) == 0 && !strchr(argv[i] + 8, ',')) {
                                generating_dependencies = 1;
                                dependency_filename_specified = 1;
+                               free(output_dep);
                                output_dep = make_relative_path(x_strdup(argv[i] + 8));
                                args_add(dep_args, argv[i]);
                                continue;
@@ -1496,6 +1498,7 @@ cc_process_args(struct args *orig_args, struct args **preprocessor_args,
                                   && !strchr(argv[i] + 9, ',')) {
                                generating_dependencies = 1;
                                dependency_filename_specified = 1;
+                               free(output_dep);
                                output_dep = make_relative_path(x_strdup(argv[i] + 9));
                                args_add(dep_args, argv[i]);
                                continue;
index 1d39bfcae35660043b83f0b997973a8a45c20dde..f5eaef4a23f08ee3029cff00582c8904fef913f2 100644 (file)
@@ -86,5 +86,6 @@ int main(int argc, char **argv)
                cct_wipe(testdir);
        }
        free(testdir);
+       free(dir_before);
        return result;
 }
diff --git a/util.c b/util.c
index 2455748b5a2c9983af6451a80d2d0ac5fa18fde1..3667d3f993ddc9084825c46e038d18147fd0283f 100644 (file)
--- a/util.c
+++ b/util.c
@@ -883,7 +883,7 @@ const char *get_home_directory(void)
 
 /*
  * Get the current directory by reading $PWD. If $PWD isn't sane, gnu_getcwd()
- * is used.
+ * is used. Caller frees.
  */
 char *get_cwd(void)
 {