Re: [PATCH] apply: refuse touching a file beyond symlink

From: Junio C Hamano
Date: Fri Jan 30 2015 - 14:48:22 EST


Jeff King <peff@xxxxxxxx> writes:

>> + if (!patch->is_delete && path_is_beyond_symlink(patch->new_name))
>> + return error(_("affected file '%s' is beyond a symbolic link"),
>> + patch->new_name);
>
> Why does this not kick in when deleting a file? If it is not OK to
> add across a symlink, why is it OK to delete?

Hmph, adding

if (patch->is_delete && path_is_beyond_symlink(patch->old_name))
return error(_("deleted file '%s' is beyond a symlink"),
patch->old_name);

seems to break t4114.11, which wants to apply this patch to a tree
that does not have a symbolic link but a directory at 'foo/'.

diff --git a/foo b/foo
new file mode 120000
index 0000000..ba0e162
--- /dev/null
+++ b/foo
@@ -0,0 +1 @@
+bar
\ No newline at end of file
diff --git a/foo/baz b/foo/baz
deleted file mode 100644
index 682c76b..0000000
--- a/foo/baz
+++ /dev/null
@@ -1 +0,0 @@
-if only I knew
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/