Skip to content

fix conversion for int/uint in ReplaceVariables - #19

Merged
jaypipes merged 1 commit into
gdt-dev:mainfrom
jaypipes:panic-int-conversion
Dec 30, 2025
Merged

fix conversion for int/uint in ReplaceVariables#19
jaypipes merged 1 commit into
gdt-dev:mainfrom
jaypipes:panic-int-conversion

Conversation

@jaypipes

Copy link
Copy Markdown
Member

There was an unsafe type conversion in the type switch statement in cotnext.ReplaceVariables() that caused a panic that looked like this:

panic: interface conversion: interface {} is int64, not int
goroutine 147 [running]:
github.com/gdt-dev/core/context.ReplaceVariables({0x105cbd6c8?, 0x140007a5030?}, {0x14000042480, 0xc})
/Users/abdul/go/pkg/mod/github.com/gdt-dev/core@v1.10.4/context/getter.go:132 +0x31c
github.com/gdt-dev/kube.(*Action).get(0x140000b2a20, {0x105cbd6c8, 0x140007a5030}, 0x14000483530, {0x1400027aab8, 0x5}, 0x14000053d00)
/Users/abdul/go/pkg/mod/github.com/gdt-dev/kube@v1.10.3/action.go:126 +0x60
github.com/gdt-dev/kube.(*Action).Do(0x105cbd6c8?, {0x105cbd6c8?, 0x140007a5030?}, 0x1400027aab8?, {0x1400027aab8?, 0x1046819ec?}, 0x14000567cc8?)
/Users/abdul/go/pkg/mod/github.com/gdt-dev/kube@v1.10.3/action.go:104 +0xb8
github.com/gdt-dev/kube.(*Spec).Eval(0x140000c2d80, {0x105cbd6c8, 0x140007a5030})
/Users/abdul/go/pkg/mod/github.com/gdt-dev/kube@v1.10.3/eval.go:37 +0x1e8
github.com/gdt-dev/core/scenario.(*Scenario).execSpec(0x0?, {0x105cbd6c8, 0x140007a5030}, 0x140007a4fc0, 0x140002406c0, 0x0?, {0x105cbf320, 0x140000c2d80})
/Users/abdul/go/pkg/mod/github.com/gdt-dev/core@v1.10.4/scenario/run.go:369 +0x3ac1

This patch fixes that unsafe type conversion and uses the recommended strconv.FormatInt and strconv.FormatUint functions for safe conversion of int64 and uint64 to string.

Issue gdt-dev/gdt#72

There was an unsafe type conversion in the type switch statement in
`cotnext.ReplaceVariables()` that caused a panic that looked like this:
```
panic: interface conversion: interface {} is int64, not int
goroutine 147 [running]:
github.com/gdt-dev/core/context.ReplaceVariables({0x105cbd6c8?, 0x140007a5030?}, {0x14000042480, 0xc})
/Users/abdul/go/pkg/mod/github.com/gdt-dev/core@v1.10.4/context/getter.go:132 +0x31c
github.com/gdt-dev/kube.(*Action).get(0x140000b2a20, {0x105cbd6c8, 0x140007a5030}, 0x14000483530, {0x1400027aab8, 0x5}, 0x14000053d00)
/Users/abdul/go/pkg/mod/github.com/gdt-dev/kube@v1.10.3/action.go:126 +0x60
github.com/gdt-dev/kube.(*Action).Do(0x105cbd6c8?, {0x105cbd6c8?, 0x140007a5030?}, 0x1400027aab8?, {0x1400027aab8?, 0x1046819ec?}, 0x14000567cc8?)
/Users/abdul/go/pkg/mod/github.com/gdt-dev/kube@v1.10.3/action.go:104 +0xb8
github.com/gdt-dev/kube.(*Spec).Eval(0x140000c2d80, {0x105cbd6c8, 0x140007a5030})
/Users/abdul/go/pkg/mod/github.com/gdt-dev/kube@v1.10.3/eval.go:37 +0x1e8
github.com/gdt-dev/core/scenario.(*Scenario).execSpec(0x0?, {0x105cbd6c8, 0x140007a5030}, 0x140007a4fc0, 0x140002406c0, 0x0?, {0x105cbf320, 0x140000c2d80})
/Users/abdul/go/pkg/mod/github.com/gdt-dev/core@v1.10.4/scenario/run.go:369 +0x3ac1
```
This patch fixes that unsafe type conversion and uses the recommended
`strconv.FormatInt` and `strconv.FormatUint` functions for safe
conversion of int64 and uint64 to string.
Issue gdt-dev/gdt#72
Signed-off-by: Jay Pipes <jaypipes@gmail.com>
@jaypipes
jaypipes merged commit bea3aa9 into gdt-dev:mainDec 30, 2025
11 checks passed
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@jaypipes