Commit Briefs
free commit on error path
while here drop the ternary too: if add_node succeeds `new_node' is non-NULL. ok stsp@
got_commit_graph_close: free tailq contents
The tailq should ideally be empty when we reach got_commit_graph_close, but consumer code may exit the commit graph loop earlier. spotted by and ok stsp@
plug leak in resolve_symlink
ok stsp@
plug mem leak in got_repo_pack_fds_open
pack_fds_tmp is not always free'd. However, while here, simplify it to not use a temporary array. ok stsp@
gotwebd: drop superfluous check
commit_id is not NULL if got_repo_match_object_id returned successfully. ok stsp@
sync file with diff.git 279d77aa1e4b921090e702a6a8a5a94a98a062b1 and
use the faster headers-only mode for diff3
gotwebd: avoid extra variable in got_output_repo_tree
in_repo_path was used only to build a path, it's then assigned to path (which is NULL at that point.) Just asprintf into path. ok stsp@
gotwebd: plugs leaks in got_get_repo_commits
call got_get_repo_commit only once and avoid leaking the field of repo_commit at each loop iteration. ok stsp@
gotwebd: always free ref in got_get_repo_commits
some code-paths may leak it. ok stsp@
gotwebd: don't close tag in got_get_repo_tags too early
it's still used a bit later, so defer the free'ing at the next loop iteration or at function end.
gotwebd: free commit_msg0 only at the end of got_get_repo_tags
in case of a failure between when it's allocated and when it's released it might get leaked otherwise. ok and semplification stsp@
switch diff output mode from "edscript" to "plain" for diff3
getchange() in diff3.c takes any line that starts with an integer and treats it as a hunk header. It doesn't actually require ed script instructions, and traditional ed script diff output would break it. Thus, changing Got's diff3 to rely on plain diff output mode paves the way for implementing traditional ed-script style output in diff.git. Patch by Tom Jones