stagit

custom fork of stagit
Index Commits Files Refs README LICENSE
commit 5334f3e0009bb7d5835c3bad60db507bfd146930
parent dc0709f6f4f7e256e27272cb0b8611715caf1f3b
Author: Hiltjo Posthuma <hiltjo@codemadness.org>
Date:   Mon, 10 Aug 2020 16:09:46 +0200

fix a small memleak in writeatom()

non-tag references were not freed.

Diffstat:
Mstagit.c | 16++++++----------
1 file changed, 6 insertions(+), 10 deletions(-)
diff --git a/stagit.c b/stagit.c
@@ -865,21 +865,17 @@ writeatom(FILE *fp, int all)
             commitinfo_free(ci);
         }
         git_revwalk_free(w);
-    } else {
+    } else if (getrefs(&ris, &refcount) != -1) {
         /* references: tags */
-        if (getrefs(&ris, &refcount) != -1) {
-            for (i = 0; i < refcount; i++) {
-                if (!git_reference_is_tag(ris[i].ref))
-                    continue;
-
+        for (i = 0; i < refcount; i++) {
+            if (git_reference_is_tag(ris[i].ref))
                 printcommitatom(fp, ris[i].ci,
                                 git_reference_shorthand(ris[i].ref));
 
-                commitinfo_free(ris[i].ci);
-                git_reference_free(ris[i].ref);
-            }
-            free(ris);
+            commitinfo_free(ris[i].ci);
+            git_reference_free(ris[i].ref);
         }
+        free(ris);
     }
 
     fputs("</feed>\n", fp);