From a910fc5a72bca16cf6e3597e4bb526274570c787 Mon Sep 17 00:00:00 2001 From: aniket866 Date: Fri, 19 Jun 2026 23:08:39 +0530 Subject: [PATCH] fi x: Nil-Pointer-Dereference Signed-off-by: aniket866 --- cmd/context.go | 5 ++--- cmd/context_test.go | 6 ++++++ pkg/errors/error.go | 7 +++++++ 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/cmd/context.go b/cmd/context.go index 8b7f418b..f88f9c31 100644 --- a/cmd/context.go +++ b/cmd/context.go @@ -47,6 +47,7 @@ microcks context http://localhost:8080 --delete`, } ctxName := args[0] + errors.CheckConfigNil(localCfg == nil, configPath) if localCfg.CurrentContext == ctxName { fmt.Printf("Already at context '%s'\n", localCfg.CurrentContext) return @@ -100,9 +101,7 @@ func deleteContext(context, configPath string) error { func printMicrocksContexts(configPath string) { localCfg, err := config.ReadLocalConfig(configPath) errors.CheckError(err) - if localCfg == nil { - log.Fatalf("No contexts defined in %s", configPath) - } + errors.CheckConfigNil(localCfg == nil, configPath) w := tabwriter.NewWriter(os.Stdout, 0, 0, 2, ' ', 0) defer func() { _ = w.Flush() }() columnNames := []string{"CURRENT", "NAME", "SERVER"} diff --git a/cmd/context_test.go b/cmd/context_test.go index 8de7935a..937ed00b 100644 --- a/cmd/context_test.go +++ b/cmd/context_test.go @@ -64,3 +64,9 @@ func TestDeleteContext(t *testing.T) { _, err = config.ReadLocalConfig(testConfigFilePath) require.NoError(t, err) } + +func TestDeleteContextEmpty(t *testing.T) { + err := deleteContext("http://localhost:8080", "./testdata/non-existent-file.config") + require.EqualError(t, err, "Nothing to logout from") +} + diff --git a/pkg/errors/error.go b/pkg/errors/error.go index 6eac99f5..8438c936 100644 --- a/pkg/errors/error.go +++ b/pkg/errors/error.go @@ -24,6 +24,13 @@ func CheckError(err error) { } } +func CheckConfigNil(isNil bool, path string) { + if isNil { + Fatal(ErrorGeneric, "No contexts defined in "+path) + } +} + + // Fatal is a wrapper for log.Fatal() to exit with custom code func Fatal(exitcode int, args ...interface{}) { log.Println(args...)