diff options
| author | Rose Hogenson <rosehogenson@posteo.net> | 2025-11-24 16:06:33 -0800 |
|---|---|---|
| committer | Rose Hogenson <rosehogenson@posteo.net> | 2025-11-24 16:16:33 -0800 |
| commit | c61422f65bf1859da9336d764bb328b1882ec287 (patch) | |
| tree | d8f1b320e000baa36d01b9e531b54f43c1a98ca7 /ccl.go | |
| parent | da798b651e8efc766cf66a39ccef906681f0b17a (diff) | |
| download | ccl-c61422f65bf1859da9336d764bb328b1882ec287.tar.zst | |
Don't allow decoding bool as int
Diffstat (limited to 'ccl.go')
| -rw-r--r-- | ccl.go | 18 |
1 files changed, 2 insertions, 16 deletions
@@ -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 } |
