aboutsummaryrefslogtreecommitdiff
path: root/builtin-apply.c
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2009-01-03 13:57:10 -0800
committerJunio C Hamano <gitster@pobox.com>2009-01-03 13:57:10 -0800
commitcaf8b2fbd4b49c66aa70624eaf35ebcdc007ad6d (patch)
tree6aa577910cc25e3177c8cd8a8c398d9506d3a354 /builtin-apply.c
parentcca1704897e7fdb182f68d4c48a437c5d7bc5203 (diff)
parent1f7903a371f90f025cfc3b4aa3a0b4a8f8b05b94 (diff)
downloadgit-caf8b2fbd4b49c66aa70624eaf35ebcdc007ad6d.tar.gz
git-caf8b2fbd4b49c66aa70624eaf35ebcdc007ad6d.tar.xz
Merge branch 'ap/maint-apply-modefix'
* ap/maint-apply-modefix: builtin-apply: prevent non-explicit permission changes
Diffstat (limited to 'builtin-apply.c')
-rw-r--r--builtin-apply.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/builtin-apply.c b/builtin-apply.c
index 07244b073..a8f75ed3e 100644
--- a/builtin-apply.c
+++ b/builtin-apply.c
@@ -630,7 +630,7 @@ static int gitdiff_index(const char *line, struct patch *patch)
memcpy(patch->new_sha1_prefix, line, len);
patch->new_sha1_prefix[len] = 0;
if (*ptr == ' ')
- patch->new_mode = patch->old_mode = strtoul(ptr+1, NULL, 8);
+ patch->old_mode = strtoul(ptr+1, NULL, 8);
return 0;
}
@@ -2447,6 +2447,8 @@ static int check_preimage(struct patch *patch, struct cache_entry **ce, struct s
if (st_mode != patch->old_mode)
fprintf(stderr, "warning: %s has type %o, expected %o\n",
old_name, st_mode, patch->old_mode);
+ if (!patch->new_mode)
+ patch->new_mode = st_mode;
return 0;
is_new: