builtin/: add UNLEAKs
authorMartin Ågren <martin.agren@gmail.com>
Sun, 1 Oct 2017 17:42:08 +0000 (19:42 +0200)
committerJunio C Hamano <gitster@pobox.com>
Mon, 2 Oct 2017 04:03:10 +0000 (13:03 +0900)
Add some UNLEAKs where we are about to return from `cmd_*`. UNLEAK the
variables in the same order as we've declared them. While addressing
`msg` in builtin/tag.c, convert the existing `strbuf_release()` calls as
well.

Signed-off-by: Martin Ågren <martin.agren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/checkout.c
builtin/diff-index.c
builtin/diff.c
builtin/name-rev.c
builtin/tag.c
index 2d75ac66c7f8447e846e0bc38072b76bddc3672b..fef94c0223fb90755d1bb19408c7fdd4e556dd69 100644 (file)
@@ -1291,6 +1291,7 @@ int cmd_checkout(int argc, const char **argv, const char *prefix)
                strbuf_release(&buf);
        }
 
+       UNLEAK(opts);
        if (opts.patch_mode || opts.pathspec.nr)
                return checkout_paths(&opts, new.name);
        else
index 185e6f9b582fdcf15072038b570463a0cfb1bbf2..09959f254fc3ea129ae834df404d21c6be7bee3d 100644 (file)
@@ -57,5 +57,6 @@ int cmd_diff_index(int argc, const char **argv, const char *prefix)
                return -1;
        }
        result = run_diff_index(&rev, cached);
+       UNLEAK(rev);
        return diff_result_code(&rev.diffopt, result);
 }
index 7cde6abbcf7651af8313bd3d70eb1944e72c9cb3..0da526cfdb893dbfeaae774edeb75cd244fb7e6e 100644 (file)
@@ -466,5 +466,8 @@ int cmd_diff(int argc, const char **argv, const char *prefix)
        result = diff_result_code(&rev.diffopt, result);
        if (1 < rev.diffopt.skip_stat_unmatch)
                refresh_index_quietly();
+       UNLEAK(rev);
+       UNLEAK(ent);
+       UNLEAK(blob);
        return result;
 }
index c41ea7c2a62ba868061884e511256c24f4d020d9..9e584f5da26ec629e77566f16bff9b5372174775 100644 (file)
@@ -494,5 +494,6 @@ int cmd_name_rev(int argc, const char **argv, const char *prefix)
                                  always, allow_undefined, data.name_only);
        }
 
+       UNLEAK(revs);
        return 0;
 }
index 7a70d5a9bb5d456f032fa35dbef9a2fbf4c24124..14d1583cff579a8a397808b9f10fd521e4055682 100644 (file)
@@ -552,9 +552,10 @@ int cmd_tag(int argc, const char **argv, const char *prefix)
        if (force && !is_null_oid(&prev) && oidcmp(&prev, &object))
                printf(_("Updated tag '%s' (was %s)\n"), tag, find_unique_abbrev(prev.hash, DEFAULT_ABBREV));
 
-       strbuf_release(&err);
-       strbuf_release(&buf);
-       strbuf_release(&ref);
-       strbuf_release(&reflog_msg);
+       UNLEAK(buf);
+       UNLEAK(ref);
+       UNLEAK(reflog_msg);
+       UNLEAK(msg);
+       UNLEAK(err);
        return 0;
 }