commit e09d28b120745366d5f1af3e5d2aee00384ae47a from: Stefan Sperling date: Fri Mar 15 10:09:02 2019 UTC plug two memory leaks when refs get closed commit - e0b573502e97109a2383ba55a08e39d0b1891d7f commit + e09d28b120745366d5f1af3e5d2aee00384ae47a blob - d2d3fe04e80254afe9c7056ea5e4746a2c02d9ea blob + c1a026bc8f6241358b948162f01eba7bde390c71 --- lib/reference.c +++ lib/reference.c @@ -411,9 +411,10 @@ done: void got_ref_close(struct got_reference *ref) { - if (ref->flags & GOT_REF_IS_SYMBOLIC) + if (ref->flags & GOT_REF_IS_SYMBOLIC) { free(ref->ref.symref.name); - else + free(ref->ref.symref.ref); + } else free(ref->ref.ref.name); free(ref); } @@ -557,7 +558,7 @@ insert_ref(struct got_reflist_head *refs, struct got_r cmp = got_path_cmp(got_ref_get_name(re->ref), got_ref_get_name(ref)); if (cmp == 0) { - free(ref); /* duplicate */ + got_ref_close(ref); /* duplicate */ return NULL; } else if (cmp > 0) { if (prev)