From 2b9c44734f2b95eb1f5814e0ab09b61f9dde09e6 Mon Sep 17 00:00:00 2001 From: Frode Austvik Date: Mon, 13 Jul 2020 17:03:49 +0000 Subject: [PATCH] Fix handling of service files with invalid syntax --- pgservicefile.go | 2 +- pgservicefile_test.go | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/pgservicefile.go b/pgservicefile.go index a5fae76..797bbab 100644 --- a/pgservicefile.go +++ b/pgservicefile.go @@ -60,7 +60,7 @@ func ParseServicefile(r io.Reader) (*Servicefile, error) { } else { parts := strings.SplitN(line, "=", 2) if len(parts) != 2 { - fmt.Errorf("unable to parse line %d", lineNum) + return nil, fmt.Errorf("unable to parse line %d", lineNum) } key := strings.TrimSpace(parts[0]) diff --git a/pgservicefile_test.go b/pgservicefile_test.go index d071ac3..e5cc3ee 100644 --- a/pgservicefile_test.go +++ b/pgservicefile_test.go @@ -51,3 +51,11 @@ application_name = has space assert.Equal(t, "defuser", def.Settings["user"]) assert.Equal(t, "has space", def.Settings["application_name"]) } + +func TestParseServicefileWithInvalidFile(t *testing.T) { + buf := bytes.NewBufferString("Invalid syntax\n") + + servicefile, err := pgservicefile.ParseServicefile(buf) + assert.Error(t, err) + assert.Nil(t, servicefile) +}