Commit e522b05
committed
Reject non-bit BOOLEAN values in wire decoder
decode_value for BOOLEAN previously called bool(decode_uint64(...)),
silently coercing any uint64 to True/False. That was asymmetric with
encode_value (which rejects integers outside {0, 1}) and made
round-trips lossy: uint64=2 decoded to True, re-encoded as 1, so the
bytes changed. Require the wire value to be exactly 0 or 1 and raise
DecodeError otherwise, matching the existing strictness for row
markers and other enforced wire invariants.1 parent 62c7cac commit e522b05
2 files changed
Lines changed: 25 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
327 | 327 | | |
328 | 328 | | |
329 | 329 | | |
330 | | - | |
| 330 | + | |
| 331 | + | |
| 332 | + | |
| 333 | + | |
| 334 | + | |
| 335 | + | |
| 336 | + | |
| 337 | + | |
331 | 338 | | |
332 | 339 | | |
333 | 340 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
435 | 435 | | |
436 | 436 | | |
437 | 437 | | |
| 438 | + | |
| 439 | + | |
| 440 | + | |
| 441 | + | |
| 442 | + | |
| 443 | + | |
| 444 | + | |
| 445 | + | |
| 446 | + | |
| 447 | + | |
| 448 | + | |
| 449 | + | |
| 450 | + | |
| 451 | + | |
| 452 | + | |
| 453 | + | |
| 454 | + | |
438 | 455 | | |
439 | 456 | | |
440 | 457 | | |
| |||
0 commit comments