From f2981c2ff581e4e425c7b23da43aee29f25232c5 Mon Sep 17 00:00:00 2001 From: David Oberhollenzer Date: Wed, 19 Jun 2019 15:59:12 +0200 Subject: simplify and improve canonicalize_name - Replace scan and memmove with simple automaton - Convert forward to back slashes, lots of file systems treat them equivalenty, this saves us a few more checks down the road - Remove './' path components. We can saveley remove them in a string processing step instead of throwing an error. Also they actually appear often in tar balls, possibly not under user control. Signed-off-by: David Oberhollenzer --- include/util.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'include/util.h') diff --git a/include/util.h b/include/util.h index 28d21bc..d5b20dd 100644 --- a/include/util.h +++ b/include/util.h @@ -6,9 +6,9 @@ #include /* - Removes all preceeding and trailing slashes, shortens all sequences of - slashes to a single slash and returns failure state if one of the path - components is '..' or '.'. + Convert back to forward slashed, remove all preceeding and trailing slashes, + collapse all sequences of slashes, remove all path components that are '.' + and returns failure state if one of the path components is '..'. Returns 0 on success. */ -- cgit v1.2.3