From 95b7746cba2e52c564a1558c397faad16a5fd8e2 Mon Sep 17 00:00:00 2001 From: Rudolf Polzer Date: Wed, 10 Sep 2014 12:01:20 +0200 Subject: [PATCH] Fix path appending to not append /. or /.. components. --- adb-sync | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/adb-sync b/adb-sync index 806b257..0a9544b 100755 --- a/adb-sync +++ b/adb-sync @@ -587,6 +587,7 @@ def ExpandWildcards(globber, path): def FixPath(src, dst): # rsync-like path munging to make remote specifications shorter. + append = b'' pos = src.rfind(b'/') if pos >= 0: if src.endswith(b'/'): @@ -594,9 +595,14 @@ def FixPath(src, dst): src = src[:-1] else: # No final slash: destination name == source name. - dst += src[pos:] + append = src[pos:] else: - dst += b'/' + src + # No slash at all - use same name at destination. + append = b'/' + src + # Append the destination file name if any. + # BUT: do not append "." or ".." components! + if append != b'/.' and append != b'/..': + dst += append return (src, dst)