From ad35d522dbfac124225e27f58bf07c61a34d78b5 Mon Sep 17 00:00:00 2001 From: lalyos Date: Fri, 25 Apr 2014 05:54:20 +0200 Subject: [PATCH] Fixes 5370 infinite/maxLoopCount loop for relative symlinks use path.IsAbs() instead of checking if first char is '/' Docker-DCO-1.1-Signed-off-by: Lajos Papp (github: lalyos) --- AUTHORS | 1 + pkg/symlink/fs.go | 5 ++--- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/AUTHORS b/AUTHORS index 014748e187..8f75ab85b3 100644 --- a/AUTHORS +++ b/AUTHORS @@ -189,6 +189,7 @@ Kimbro Staken Kiran Gangadharan Konstantin Pelykh Kyle Conroy +Lajos Papp Laurie Voss Liang-Chi Hsieh Lokesh Mandvekar diff --git a/pkg/symlink/fs.go b/pkg/symlink/fs.go index 4dcfdf360f..257491f91b 100644 --- a/pkg/symlink/fs.go +++ b/pkg/symlink/fs.go @@ -63,10 +63,9 @@ func FollowSymlinkInScope(link, root string) (string, error) { return "", err } - switch dest[0] { - case '/': + if path.IsAbs(dest) { prev = filepath.Join(root, dest) - case '.': + } else { prev, _ = filepath.Abs(prev) if prev = filepath.Clean(filepath.Join(filepath.Dir(prev), dest)); len(prev) < len(root) {