Stop ADD from following symlinks outside the context when passed as the first argument

Docker-DCO-1.1-Signed-off-by: Andrew Page <admwiggin@gmail.com> (github: tianon)
This commit is contained in:
Tianon Gravi 2014-01-11 05:46:11 -07:00
Родитель cb314b9752
Коммит fb63cfa9a5
1 изменённых файлов: 5 добавлений и 0 удалений

Просмотреть файл

@ -287,6 +287,11 @@ func (b *buildFile) CmdVolume(args string) error {
func (b *buildFile) checkPathForAddition(orig string) error { func (b *buildFile) checkPathForAddition(orig string) error {
origPath := path.Join(b.contextPath, orig) origPath := path.Join(b.contextPath, orig)
if p, err := filepath.EvalSymlinks(origPath); err != nil {
return err
} else {
origPath = p
}
if !strings.HasPrefix(origPath, b.contextPath) { if !strings.HasPrefix(origPath, b.contextPath) {
return fmt.Errorf("Forbidden path outside the build context: %s (%s)", orig, origPath) return fmt.Errorf("Forbidden path outside the build context: %s (%s)", orig, origPath)
} }