From 045e3a24dd0703f40e379982ac5bf7afb514c13b Mon Sep 17 00:00:00 2001 From: linuxmercedes Date: Fri, 4 Jan 2019 12:57:32 -0600 Subject: [PATCH] Parser errors on dockerfiles without instructions See https://github.com/moby/moby/pull/38487 for more discussion. Signed-off-by: Natasha Jarus (cherry picked from commit 2ec7d53b00f24624cda0adfbdceed982623a93b3) Signed-off-by: Sebastiaan van Stijn --- frontend/dockerfile/parser/parser.go | 5 +++++ .../parser/testfiles-negative/empty_dockerfile/Dockerfile | 0 .../parser/testfiles-negative/only_comments/Dockerfile | 3 +++ 3 files changed, 8 insertions(+) create mode 100644 frontend/dockerfile/parser/testfiles-negative/empty_dockerfile/Dockerfile create mode 100644 frontend/dockerfile/parser/testfiles-negative/only_comments/Dockerfile diff --git a/frontend/dockerfile/parser/parser.go b/frontend/dockerfile/parser/parser.go index 0453f3a9a2ae..262a76813374 100644 --- a/frontend/dockerfile/parser/parser.go +++ b/frontend/dockerfile/parser/parser.go @@ -275,6 +275,11 @@ func Parse(rwc io.Reader) (*Result, error) { if len(warnings) > 0 { warnings = append(warnings, "[WARNING]: Empty continuation lines will become errors in a future release.") } + + if root.StartLine < 0 { + return nil, errors.New("file with no instructions.") + } + return &Result{ AST: root, Warnings: warnings, diff --git a/frontend/dockerfile/parser/testfiles-negative/empty_dockerfile/Dockerfile b/frontend/dockerfile/parser/testfiles-negative/empty_dockerfile/Dockerfile new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/frontend/dockerfile/parser/testfiles-negative/only_comments/Dockerfile b/frontend/dockerfile/parser/testfiles-negative/only_comments/Dockerfile new file mode 100644 index 000000000000..5dd027a67827 --- /dev/null +++ b/frontend/dockerfile/parser/testfiles-negative/only_comments/Dockerfile @@ -0,0 +1,3 @@ +# Hello +# These are just comments +