interpret_nth_last_branch(): plug small memleak
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Junio C Hamano committed
Jan 19, 2009 at 21:58 UTC
39765e5941d36f74cec4764d315da0ba5743547c
1 file changed
+7
-3
sha1_name.c
+7
-3
@@ -754,7 +754,7 @@ static int grab_nth_branch_switch(unsigned char *osha1, unsigned char *nsha1,
754
int interpret_nth_last_branch(const char *name, struct strbuf *buf)
755
{
756
long nth;
757
- int i;
757
+ int i, retval;
758
struct grab_nth_branch_switch_cbdata cb;
759
const char *brace;
760
char *num_end;
@@ -774,17 +774,21 @@ int interpret_nth_last_branch(const char *name, struct strbuf *buf)
774
for (i = 0; i < nth; i++)
775
strbuf_init(&cb.buf[i], 20);
776
cb.cnt = 0;
777
+ retval = 0;
778
for_each_reflog_ent("HEAD", grab_nth_branch_switch, &cb);
779
if (cb.cnt < nth)
779
- return 0;
780
+ goto release_return;
781
i = cb.cnt % nth;
782
strbuf_reset(buf);
783
strbuf_add(buf, cb.buf[i].buf, cb.buf[i].len);
784
+ retval = brace-name+1;
785
+
786
+release_return:
787
for (i = 0; i < nth; i++)
788
strbuf_release(&cb.buf[i]);
789
free(cb.buf);
790
787
- return brace-name+1;
791
+ return retval;
792
}
793
794
/*