From a5376913fde6f8a927632fea514d22de2333bfdd Mon Sep 17 00:00:00 2001 From: Christian Schwarz Date: Thu, 18 Oct 2018 16:18:53 +0200 Subject: [PATCH] daemon/job: fix buildJob returning nil error on job uild error Would show up as ugly nil-pointer-deref panic later during daemon startup --- daemon/job/build_jobs.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/daemon/job/build_jobs.go b/daemon/job/build_jobs.go index 372f51a..a48a183 100644 --- a/daemon/job/build_jobs.go +++ b/daemon/job/build_jobs.go @@ -13,6 +13,9 @@ func JobsFromConfig(c *config.Config) ([]Job, error) { if err != nil { return nil, err } + if j == nil || j.Name() == "" { + panic(fmt.Sprintf("implementation error: job builder returned nil job type %T", c.Jobs[i].Ret)) + } js[i] = j } return js, nil @@ -20,7 +23,7 @@ func JobsFromConfig(c *config.Config) ([]Job, error) { func buildJob(c *config.Global, in config.JobEnum) (j Job, err error) { cannotBuildJob := func(e error, name string) (Job, error) { - return nil, errors.Wrapf(err, "cannot build job %q", name) + return nil, errors.Wrapf(e, "cannot build job %q", name) } // FIXME prettify this switch v := in.Ret.(type) {