Release allocated strbufs in functions that are at least potentionally library-like; cmd_*() functions are out of scope because the process ends with them and the OS cleans up for us anyway. The patches are split by function and were generated with --function-context for easier reviewing. am: release strbufs after use in detect_patch_format() am: release strbuf on error return in hg_patch_to_mail() am: release strbuf after use in safe_to_abort() check-ref-format: release strbuf after use in check_ref_format_branch() clean: release strbuf after use in remove_dirs() clone: release strbuf after use in remove_junk() commit: release strbuf on error return in commit_tree_extended() connect: release strbuf on error return in git_connect() convert: release strbuf on error return in filter_buffer_or_fd() diff: release strbuf after use in diff_summary() diff: release strbuf after use in show_rename_copy() diff: release strbuf after use in show_stats() help: release strbuf on error return in exec_man_konqueror() help: release strbuf on error return in exec_man_man() help: release strbuf on error return in exec_woman_emacs() mailinfo: release strbuf after use in handle_from() mailinfo: release strbuf on error return in handle_boundary() merge: release strbuf after use in save_state() merge: release strbuf after use in write_merge_heads() notes: release strbuf after use in notes_copy_from_stdin() refs: release strbuf on error return in write_pseudoref() remote: release strbuf after use in read_remote_branches() remote: release strbuf after use in migrate_file() remote: release strbuf after use in set_url() send-pack: release strbuf on error return in send_pack() sha1_file: release strbuf on error return in index_path() shortlog: release strbuf after use in insert_one_record() sequencer: release strbuf after use in save_head() transport-helper: release strbuf after use in process_connect_service() userdiff: release strbuf after use in userdiff_get_textconv() utf8: release strbuf on error return in strbuf_utf8_replace() vcs-svn: release strbuf after use in end_revision() wt-status: release strbuf after use in read_rebase_todolist() wt-status: release strbuf after use in wt_longstatus_print_tracking() builtin/am.c | 34 ++++++++++++++++++++++------------ builtin/check-ref-format.c | 1 + builtin/clean.c | 7 +++++-- builtin/clone.c | 2 +- builtin/help.c | 3 +++ builtin/merge.c | 9 +++++++-- builtin/notes.c | 1 + builtin/remote.c | 8 +++++--- builtin/shortlog.c | 1 + commit.c | 7 +++++-- connect.c | 4 +++- convert.c | 4 +++- diff.c | 3 +++ mailinfo.c | 10 +++++----- refs.c | 2 +- send-pack.c | 5 ++++- sequencer.c | 5 ++++- sha1_file.c | 6 +++--- transport-helper.c | 1 + userdiff.c | 1 + utf8.c | 3 ++- vcs-svn/svndump.c | 1 + wt-status.c | 2 ++ 23 files changed, 84 insertions(+), 36 deletions(-) -- 2.14.1