diff options
author | Junio C Hamano <gitster@pobox.com> | 2009-01-13 00:56:40 -0800 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2009-01-13 00:56:40 -0800 |
commit | ae5a97fdd0c553926aabdf324b6d9108b0699bee (patch) | |
tree | 4e757fbe32df5eb3cc5cb437634aa7ac2831e4be /builtin-apply.c | |
parent | 1cbe69f649fc45a3052e82c8e92e4a0f9eff67ed (diff) | |
parent | 1f7903a371f90f025cfc3b4aa3a0b4a8f8b05b94 (diff) | |
download | git-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.c | 4 |
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: |