From 886132bccea093ddba301369b329f251afcbfea3 Mon Sep 17 00:00:00 2001 From: bdumpp Date: Wed, 8 Jul 2026 10:19:55 +0200 Subject: [PATCH] :bug: fix infinite recursion bug Signed-off-by: bdumpp --- api/config/v2alpha2/opaconfig_types.go | 5 ++++- api/styra/v1beta1/opaconfig_types.go | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/api/config/v2alpha2/opaconfig_types.go b/api/config/v2alpha2/opaconfig_types.go index 1b89510f..324eb81d 100644 --- a/api/config/v2alpha2/opaconfig_types.go +++ b/api/config/v2alpha2/opaconfig_types.go @@ -66,7 +66,10 @@ func (c *OPAConfigSpec) UnmarshalJSON(data []byte) error { return err } - var decoded OPAConfigSpec + // Use a local alias to avoid infinite recursion: json.Unmarshal on the + // alias type uses the default struct decoder, bypassing this method. + type alias OPAConfigSpec + var decoded alias if err := json.Unmarshal(data, &decoded); err != nil { return err } diff --git a/api/styra/v1beta1/opaconfig_types.go b/api/styra/v1beta1/opaconfig_types.go index affd590c..54682b9d 100644 --- a/api/styra/v1beta1/opaconfig_types.go +++ b/api/styra/v1beta1/opaconfig_types.go @@ -62,7 +62,10 @@ type OPAStorageConfig struct { // non-standard keys can still be read by the controller. Validation is // performed on write via the admission webhook. func (c *OPAConfigSpec) UnmarshalJSON(data []byte) error { - var decoded OPAConfigSpec + // Use a local alias to avoid infinite recursion: json.Unmarshal on the + // alias type uses the default struct decoder, bypassing this method. + type alias OPAConfigSpec + var decoded alias if err := json.Unmarshal(data, &decoded); err != nil { return err }