X-Git-Url: https://git.cworth.org/git?p=tar;a=blobdiff_plain;f=gnu%2Funlink.c;fp=gnu%2Funlink.c;h=827ea875b7812e345111e0f8a5a02273ce053691;hp=568d2cdce4a58caa2516a5943cfc18dc7f08fa5a;hb=ee168310ec4227174ace489bf5f81f8c2f91cde0;hpb=22f1eb8bc17e5be72dd23d42d6aaa60196ac22e6 diff --git a/gnu/unlink.c b/gnu/unlink.c index 568d2cd..827ea87 100644 --- a/gnu/unlink.c +++ b/gnu/unlink.c @@ -82,6 +82,16 @@ rpl_unlink (char const *name) } } if (!result) - result = unlink (name); + { +#if UNLINK_PARENT_BUG + if (len >= 2 && name[len - 1] == '.' && name[len - 2] == '.' + && (len == 2 || ISSLASH (name[len - 3]))) + { + errno = EISDIR; /* could also use EPERM */ + return -1; + } +#endif + result = unlink (name); + } return result; }