]> git.ipfire.org Git - thirdparty/tar.git/commitdiff
Fix commit typo when bringing back placeholders master
authorPaul Eggert <eggert@cs.ucla.edu>
Thu, 27 Nov 2025 19:11:25 +0000 (11:11 -0800)
committerPaul Eggert <eggert@cs.ucla.edu>
Thu, 27 Nov 2025 19:21:49 +0000 (11:21 -0800)
Problem reported by Pavel Raiskup in:
https://lists.gnu.org/r/bug-tar/2025-11/msg00028.html
* src/extract.c (contains_dot_dot): Bring back this function here,
from its former location in src/names.c.  Make it static since
it is used only in this compilation unit.

src/extract.c

index 4345b52820473214b3ff64074ab2c9c06c0dcb29..92381edb41e91a305d33d746c1012562c775250a 100644 (file)
@@ -72,6 +72,23 @@ implemented (int err)
            || (EOPNOTSUPP != ENOTSUP && err == EOPNOTSUPP));
 }
 
+/* Return true if NAME contains ".." as a file name component.  */
+static bool
+contains_dot_dot (char const *name)
+{
+  char const *p = name + FILE_SYSTEM_PREFIX_LEN (name);
+
+  for (;; p++)
+    {
+      if (p[0] == '.' && p[1] == '.' && (ISSLASH (p[2]) || !p[2]))
+       return true;
+
+      for (; ! ISSLASH (*p); p++)
+       if (!*p)
+         return false;
+    }
+}
+
 /* List of directories whose statuses we need to extract after we've
    finished extracting their subsidiary files.  Ordinarily the head of
    the list has the longest name, and each non-head element is an