From cc30a8cf1d6f9470c370729cd6b7aebb77e4cdc7 Mon Sep 17 00:00:00 2001 From: Daniel Banck Date: Fri, 10 Oct 2025 10:51:00 +0200 Subject: [PATCH] Fix crash when showing a cloud plan without having a cloud backend (#37751) * Fix crash when showing a cloud plan without a cloud backend * Add changelog --- .changes/v1.13/BUG FIXES-20251009-144645.yaml | 5 +++++ internal/cloud/backend.go | 2 +- internal/cloud/backend_test.go | 12 ++++++++++++ 3 files changed, 18 insertions(+), 1 deletion(-) create mode 100644 .changes/v1.13/BUG FIXES-20251009-144645.yaml diff --git a/.changes/v1.13/BUG FIXES-20251009-144645.yaml b/.changes/v1.13/BUG FIXES-20251009-144645.yaml new file mode 100644 index 0000000000..2f96fe0e9c --- /dev/null +++ b/.changes/v1.13/BUG FIXES-20251009-144645.yaml @@ -0,0 +1,5 @@ +kind: BUG FIXES +body: Fix crash when showing a cloud plan without having a cloud backend +time: 2025-10-09T14:46:45.59398+02:00 +custom: + Issue: "37751" diff --git a/internal/cloud/backend.go b/internal/cloud/backend.go index 52a2e61c67..35d1620902 100644 --- a/internal/cloud/backend.go +++ b/internal/cloud/backend.go @@ -437,7 +437,7 @@ func (b *Cloud) Configure(obj cty.Value) tfdiags.Diagnostics { } func (b *Cloud) AppName() string { - if isValidAppName(b.appName) { + if b != nil && isValidAppName(b.appName) { return b.appName } return "HCP Terraform" diff --git a/internal/cloud/backend_test.go b/internal/cloud/backend_test.go index f1bedd83fc..a838ad852a 100644 --- a/internal/cloud/backend_test.go +++ b/internal/cloud/backend_test.go @@ -1705,3 +1705,15 @@ func TestCloud_ServiceDiscoveryAliases(t *testing.T) { t.Fatalf("expected 1 alias but got %d", len(aliases)) } } + +// When a user tries to view a cloud plan without having a cloud backend in their +// configuration, a call to AppName() would fail with a nil pointer exception +// See: https://github.com/hashicorp/terraform/issues/37748 +func TestCloud_AppName_with_nil(t *testing.T) { + var backend *Cloud = nil + + name := backend.AppName() + if name != "HCP Terraform" { + t.Fatalf("expected name to be HCP Terraform, got %q", name) + } +}