From 4745f1fd648456f47e9824ae12178159d6ad007c Mon Sep 17 00:00:00 2001 From: Anthony Fok Date: Thu, 11 Dec 2014 10:06:11 -0700 Subject: [PATCH] In execute(), check if command is Runnable() A corner case exists where c.Runnable() is not checked before c.Run() is called, thus a nil c.Run is executed leading to "panic: runtime error: invalid memory address or nil pointer dereference". This patch adds an extra c.Runnable() check in execute() to catch that corner case. Fixes #37. --- command.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/command.go b/command.go index 7b2cf7de..2b289290 100644 --- a/command.go +++ b/command.go @@ -369,8 +369,9 @@ func (c *Command) execute(a []string) (err error) { r.SetOutput(out) return err } else { - // If help is called, regardless of other flags, we print that - if c.helpFlagVal { + // If help is called, regardless of other flags, we print that. + // Print help also if c.Run is nil. + if c.helpFlagVal || !c.Runnable() { c.Help() return nil }