aboutsummaryrefslogtreecommitdiffstats
path: root/ccl.go
diff options
context:
space:
mode:
authorRose Hogenson <rosehogenson@posteo.net>2025-11-24 16:06:33 -0800
committerRose Hogenson <rosehogenson@posteo.net>2025-11-24 16:16:33 -0800
commitc61422f65bf1859da9336d764bb328b1882ec287 (patch)
treed8f1b320e000baa36d01b9e531b54f43c1a98ca7 /ccl.go
parentda798b651e8efc766cf66a39ccef906681f0b17a (diff)
downloadccl-c61422f65bf1859da9336d764bb328b1882ec287.tar.zst
Don't allow decoding bool as int
Diffstat (limited to 'ccl.go')
-rw-r--r--ccl.go18
1 files changed, 2 insertions, 16 deletions
diff --git a/ccl.go b/ccl.go
index 6753dbc..eea772c 100644
--- a/ccl.go
+++ b/ccl.go
@@ -687,24 +687,10 @@ func intLimits(kind reflect.Kind) (min, max uint64, ok bool) {
func (p *parser) unpackBool(fieldVal reflect.Value, b bool, field []byte) error {
fieldVal = setPtr(fieldVal)
- switch fieldVal.Kind() {
- case reflect.Bool:
- fieldVal.SetBool(b)
- case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:
- if b {
- fieldVal.SetInt(1)
- } else {
- fieldVal.SetInt(0)
- }
- case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64:
- if b {
- fieldVal.SetUint(1)
- } else {
- fieldVal.SetUint(0)
- }
- default:
+ if fieldVal.Kind() != reflect.Bool {
return p.error("field %q should have type bool", field)
}
+ fieldVal.SetBool(b)
return nil
}