summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJunio C Hamano <junkio@cox.net>2006-12-06 10:47:37 -0800
committerJunio C Hamano <junkio@cox.net>2006-12-06 10:47:37 -0800
commit2d13b732e3b2aca685615f353e3353e26cdbd9b3 (patch)
tree88d4954398e0f775e787e091e9b03883a4decef3
parent4003a58e415e5f51a3becac0079505b72299a7bc (diff)
parent49ed2bc4660c7cd0592cf21cc514080574d06320 (diff)
downloadgit-2d13b732e3b2aca685615f353e3353e26cdbd9b3.tar.gz
Merge branch 'maint'
* maint: git-reset to remove "$GIT_DIR/MERGE_MSG" unpack-trees: make sure "df_conflict_entry.name" is NUL terminated.
-rwxr-xr-xgit-reset.sh3
-rw-r--r--unpack-trees.c8
2 files changed, 7 insertions, 4 deletions
diff --git a/git-reset.sh b/git-reset.sh
index 3133b5bd25..c0feb4435d 100755
--- a/git-reset.sh
+++ b/git-reset.sh
@@ -63,6 +63,7 @@ case "$reset_type" in
;;
esac
-rm -f "$GIT_DIR/MERGE_HEAD" "$GIT_DIR/rr-cache/MERGE_RR" "$GIT_DIR/SQUASH_MSG"
+rm -f "$GIT_DIR/MERGE_HEAD" "$GIT_DIR/rr-cache/MERGE_RR" \
+ "$GIT_DIR/SQUASH_MSG" "$GIT_DIR/MERGE_MSG"
exit $update_ref_status
diff --git a/unpack-trees.c b/unpack-trees.c
index 7cfd628d8e..47aa804a86 100644
--- a/unpack-trees.c
+++ b/unpack-trees.c
@@ -370,7 +370,7 @@ int unpack_trees(struct object_list *trees, struct unpack_trees_options *o)
int i;
struct object_list *posn = trees;
struct tree_entry_list df_conflict_list;
- struct cache_entry df_conflict_entry;
+ static struct cache_entry *dfc;
memset(&df_conflict_list, 0, sizeof(df_conflict_list));
df_conflict_list.next = &df_conflict_list;
@@ -381,8 +381,10 @@ int unpack_trees(struct object_list *trees, struct unpack_trees_options *o)
state.refresh_cache = 1;
o->merge_size = len;
- memset(&df_conflict_entry, 0, sizeof(df_conflict_entry));
- o->df_conflict_entry = &df_conflict_entry;
+
+ if (!dfc)
+ dfc = xcalloc(1, sizeof(struct cache_entry) + 1);
+ o->df_conflict_entry = dfc;
if (len) {
posns = xmalloc(len * sizeof(struct tree_entry_list *));