commit 254707814d845a2c4a93c473ad51e9e1b28c716f from: Stefan Sperling date: Sun Apr 01 15:36:55 2018 UTC clean up commit list upon error in print_commits() commit - bb5dcc10ceb4a956d322cbd7523d3421e80df2e3 commit + 254707814d845a2c4a93c473ad51e9e1b28c716f blob - 9256ea5be5dc6311281aab2d0cf55c00ac6c5732 blob + fb1724c0ddbc3fe5a9dd001ccb99e8ff4acc3093 --- got/got.c +++ got/got.c @@ -343,8 +343,16 @@ print_commits(struct got_object *root_obj, struct got_ entry = TAILQ_FIRST(&commits); err = print_commit(entry->commit, entry->id, repo, show_patch); - if (err) + if (err) { + while (!TAILQ_EMPTY(&commits)) { + entry = TAILQ_FIRST(&commits); + TAILQ_REMOVE(&commits, entry, entry); + got_object_commit_close(entry->commit); + free(entry->id); + free(entry); + } break; + } SIMPLEQ_FOREACH(pid, &entry->commit->parent_ids, entry) { struct got_object *obj;