From 2a9871e2e9cb31ce1cbd78c9cc3a28b1eb5734ad Mon Sep 17 00:00:00 2001 From: Andrey Smirnov Date: Fri, 17 Oct 2014 00:54:15 +0400 Subject: [PATCH] We should never ever overwrite files in package pool. #127 --- files/package_pool.go | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/files/package_pool.go b/files/package_pool.go index 6895766f..a03ebdc0 100644 --- a/files/package_pool.go +++ b/files/package_pool.go @@ -128,16 +128,15 @@ func (pool *PackagePool) Import(path string, hashMD5 string) error { // unable to stat target location? return err } - } + } else { + // target already exists + if targetInfo.Size() != sourceInfo.Size() { + // trying to overwrite file? + return fmt.Errorf("unable to import into pool: file %s already exists", poolPath) + } - if targetInfo.Size() != sourceInfo.Size() { - // trying to overwrite file? - return fmt.Errorf("unable to import into pool: file %s already exists", poolPath) - } - - if os.SameFile(targetInfo, sourceInfo) { - // Same file on the filesystem? Just skip it. - return err + // assume that target is already there + return nil } // create subdirs as necessary