]> git.cworth.org Git - tar/blobdiff - gnu/unlink.c
Imported Upstream version 1.24
[tar] / gnu / unlink.c
index 568d2cdce4a58caa2516a5943cfc18dc7f08fa5a..827ea875b7812e345111e0f8a5a02273ce053691 100644 (file)
@@ -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;
 }