fix a small memleak in writeatom()
authorHiltjo Posthuma <hiltjo@codemadness.org>
Mon, 10 Aug 2020 14:09:46 +0000 (16:09 +0200)
committerHiltjo Posthuma <hiltjo@codemadness.org>
Mon, 10 Aug 2020 14:09:46 +0000 (16:09 +0200)
non-tag references were not freed.

stagit.c

index d5c601555e4642e9dc4291dc8b99cafc0365bfbc..d9e80a17fb047092c8ef0a2c7d63451a4d06508c 100644 (file)
--- 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);