commit 45f209d712e46bfabc19ea1f2773bb1d1d230d42 from: Stefan Sperling date: Sun Nov 18 22:18:50 2018 UTC add_node() must remove freed nodes from graph in error path commit - 9b88e78ce7dfa88adba6acc7e68ae6fa557d48d1 commit + 45f209d712e46bfabc19ea1f2773bb1d1d230d42 blob - 5e0f78693f0011f1b6262c49bfa355856ece0bea blob + 60d49e521af48a0675ac56b7479fb093cd2df794 --- lib/commit_graph.c +++ lib/commit_graph.c @@ -437,18 +437,21 @@ add_node(struct got_commit_graph_node **new_node, int err = NULL; *branch_done = 1; } else { + got_object_idset_remove(NULL, graph->node_ids, + &node->id); free_node(node); return err; } } - if (*changed) - add_node_to_iter_list(graph, node, child_node); - - if (err) - free_node(node); - else + if (err) { + got_object_idset_remove(NULL, graph->node_ids, &node->id); + free_node(node); + } else { + if (*changed) + add_node_to_iter_list(graph, node, child_node); *new_node = node; + } return err; }