diff --git a/builtin/update-index.c b/builtin/update-index.c
index d7850c6309aec0c1a4f640999fb757d7b32ba1b8..a6a23fa1f3c7782566d7fcfe470dd424b876e4a5 100644 (file)
--- a/builtin/update-index.c
+++ b/builtin/update-index.c
fill_stat_cache_info(ce, st);
ce->ce_mode = ce_mode_from_stat(old, st->st_mode);
- if (index_path(ce->sha1, path, st, !info_only))
+ if (index_path(ce->sha1, path, st,
+ info_only ? 0 : HASH_WRITE_OBJECT)) {
+ free(ce);
return -1;
+ }
option = allow_add ? ADD_CACHE_OK_TO_ADD : 0;
option |= allow_replace ? ADD_CACHE_OK_TO_REPLACE : 0;
if (add_cache_entry(ce, option))