Index: lib/paxnames.c =================================================================== --- lib/paxnames.c.orig +++ lib/paxnames.c @@ -18,6 +18,7 @@ #include #include #include +#include /* Hash tables of strings. */ @@ -114,7 +115,15 @@ safer_name_suffix (char const *file_name for (p = file_name + prefix_len; *p; ) { if (p[0] == '.' && p[1] == '.' && (ISSLASH (p[2]) || !p[2])) - prefix_len = p + 2 - file_name; + { + static char const *const diagnostic[] = + { + N_("%s: Member name contains '..'"), + N_("%s: Hard link target contains '..'") + }; + FATAL_ERROR ((0, 0, _(diagnostic[link_target]), + quotearg_colon (file_name))); + } do {