summaryrefslogtreecommitdiff
path: root/builtin-apply.c
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2009-01-13 00:56:40 -0800
committerJunio C Hamano <gitster@pobox.com>2009-01-13 00:56:40 -0800
commitae5a97fdd0c553926aabdf324b6d9108b0699bee (patch)
tree4e757fbe32df5eb3cc5cb437634aa7ac2831e4be /builtin-apply.c
parent1cbe69f649fc45a3052e82c8e92e4a0f9eff67ed (diff)
parent1f7903a371f90f025cfc3b4aa3a0b4a8f8b05b94 (diff)
downloadgit-ae5a97fdd0c553926aabdf324b6d9108b0699bee.tar.gz
Merge branch 'ap/maint-apply-modefix' into maint
* 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 07244b0736..a8f75ed3ed 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: