(extract_link, extract_symlink): Use
transform_member_name instead of safer_name_suffix so that --transform and --strip-components affect links as well.
This commit is contained in:
@@ -914,10 +914,12 @@ create_placeholder_file (char *file_name, bool is_symlink, int *interdir_made)
|
|||||||
static int
|
static int
|
||||||
extract_link (char *file_name, int typeflag)
|
extract_link (char *file_name, int typeflag)
|
||||||
{
|
{
|
||||||
char const *link_name = safer_name_suffix (current_stat_info.link_name,
|
|
||||||
true, absolute_names_option);
|
|
||||||
int interdir_made = 0;
|
int interdir_made = 0;
|
||||||
|
char const *link_name;
|
||||||
|
|
||||||
|
transform_member_name (¤t_stat_info.link_name, true);
|
||||||
|
link_name = current_stat_info.link_name;
|
||||||
|
|
||||||
if (! absolute_names_option && contains_dot_dot (link_name))
|
if (! absolute_names_option && contains_dot_dot (link_name))
|
||||||
return create_placeholder_file (file_name, false, &interdir_made);
|
return create_placeholder_file (file_name, false, &interdir_made);
|
||||||
|
|
||||||
@@ -972,6 +974,8 @@ extract_symlink (char *file_name, int typeflag)
|
|||||||
int status;
|
int status;
|
||||||
int interdir_made = 0;
|
int interdir_made = 0;
|
||||||
|
|
||||||
|
transform_member_name (¤t_stat_info.link_name, true);
|
||||||
|
|
||||||
if (! absolute_names_option
|
if (! absolute_names_option
|
||||||
&& (IS_ABSOLUTE_FILE_NAME (current_stat_info.link_name)
|
&& (IS_ABSOLUTE_FILE_NAME (current_stat_info.link_name)
|
||||||
|| contains_dot_dot (current_stat_info.link_name)))
|
|| contains_dot_dot (current_stat_info.link_name)))
|
||||||
|
|||||||
Reference in New Issue
Block a user