Skip to content

fix: make ExtDType metadata deserialization total over byte input#7782

Merged
gatesn merged 1 commit intodevelopfrom
claude/issue-7773-20260504-1600
May 4, 2026
Merged

fix: make ExtDType metadata deserialization total over byte input#7782
gatesn merged 1 commit intodevelopfrom
claude/issue-7773-20260504-1600

Conversation

@gatesn
Copy link
Copy Markdown
Contributor

@gatesn gatesn commented May 4, 2026

Fixes #7773

Generated with Claude Code

Replace panicking index operations with proper bounds checks using
vortex_ensure!, so malformed byte slices return VortexError instead
of panicking:

- date.rs: guard metadata[0] with !metadata.is_empty() check
- time.rs: guard data[0] with !data.is_empty() check
- timestamp.rs: improve existing data.len() >= 3 check to also
  validate data.len() >= 3 + tz_len before slicing timezone bytes

Add regression tests for all three panic cases.

Fixes #7773

Signed-off-by: vortex-claude <vortex-claude@users.noreply.github.com>
Co-authored-by: Nicholas Gates <gatesn@users.noreply.github.com>
@gatesn gatesn enabled auto-merge (squash) May 4, 2026 16:10
@gatesn gatesn added the changelog/fix A bug fix label May 4, 2026
Copy link
Copy Markdown
Contributor

@a10y a10y left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nice

@a10y
Copy link
Copy Markdown
Contributor

a10y commented May 4, 2026

Should consider adding some limited fuzzing passes to all of our serde to make sure it never panics

@gatesn gatesn merged commit f843857 into develop May 4, 2026
69 of 70 checks passed
@gatesn gatesn deleted the claude/issue-7773-20260504-1600 branch May 4, 2026 16:15
@codspeed-hq
Copy link
Copy Markdown

codspeed-hq Bot commented May 4, 2026

Merging this PR will degrade performance by 24.98%

⚠️ Unknown Walltime execution environment detected

Using the Walltime instrument on standard Hosted Runners will lead to inconsistent data.

For the most accurate results, we recommend using CodSpeed Macro Runners: bare-metal machines fine-tuned for performance measurement consistency.

❌ 3 regressed benchmarks
✅ 1166 untouched benchmarks
⏩ 138 skipped benchmarks1

⚠️ Please fix the performance issues or acknowledge them on CodSpeed.

Performance Changes

Mode Benchmark BASE HEAD Efficiency
Simulation varbinview_zip_fragmented_mask 6.5 ms 7.3 ms -10.29%
Simulation varbinview_zip_block_mask 2.9 ms 3.7 ms -21.64%
Simulation new_bp_prim_test_between[i64, 32768] 177.3 µs 236.3 µs -24.98%

Comparing claude/issue-7773-20260504-1600 (64e6493) with develop (44a6367)

Open in CodSpeed

Footnotes

  1. 138 benchmarks were skipped, so the baseline results were used instead. If they were deleted from the codebase, click here and archive them to remove them from the performance reports.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

changelog/fix A bug fix

Projects

None yet

Development

Successfully merging this pull request may close these issues.

ExtDType deserialize can panic

2 participants