Here's a re-roll of the series from: http://public-inbox.org/git/20170315212617.6x57bvltinuozv4q@xxxxxxxxxxxxxxxxxxxxx/ The general gist is the same, but there are a number of changes: - I dropped the first patch factoring out finalize_file(), as Ramsay pointed out a subtle difference between the index and pack handling. - I added an extra patch on top (5/5 here) to get the same pointer-aliasing safety that the factored-out function got us (more so, actually, as it protects keep_msg, too). - I re-ordered the odb_pack_keep() cleanup before the odb_pack_name() cleanups, which lets us do the latter in one swoop (and avoids explaining "well, we can't do .keep yet, because..." in the commit message) - The original had two patches doing the odb_pack_name() conversion. Now that it has fewer caveats, I felt comfortable lumping it all into one (patch 4/5 here). [1/5]: move odb_* declarations out of git-compat-util.h [2/5]: sha1_file.c: make pack-name helper globally accessible [3/5]: odb_pack_keep(): stop generating keepfile name [4/5]: replace snprintf with odb_pack_name() [5/5]: index-pack: make pointer-alias fallbacks safer builtin/index-pack.c | 31 +++++++++++++++---------------- cache.h | 21 +++++++++++++++++++++ environment.c | 6 ++---- fast-import.c | 26 +++++++++++++------------- git-compat-util.h | 2 -- sha1_file.c | 17 ++++++----------- 6 files changed, 57 insertions(+), 46 deletions(-)