diff --git a/builtin-apply.c b/builtin-apply.c
index 1e7f917d3908c0c2f70c7208cb8b0839782849e4..106be94105dbff4c150deac7854a50c67ecd974d 100644 (file)
--- a/builtin-apply.c
+++ b/builtin-apply.c
* In such a case, path "new_name" does not exist as
* far as git is concerned.
*/
- if (has_symlink_leading_path(strlen(new_name), new_name))
+ if (has_symlink_leading_path(new_name, strlen(new_name)))
return 0;
return error("%s: already exists in working directory", new_name);
@@ -2441,7 +2441,7 @@ static int check_preimage(struct patch *patch, struct cache_entry **ce, struct s
return error("%s: %s", old_name, strerror(errno));
}
- if (!cached)
+ if (!cached && !tpatch)
st_mode = ce_mode_from_stat(*ce, st->st_mode);
if (patch->is_new < 0)