Skip to content

Fix SQLite invalid-byte corruption in DBI fetches - #1925

Merged
fglock merged 1 commit into
masterfrom
feature/issue-1923-sqlite-text-bytes
Oct 29, 2026
Merged

fglock merged 1 commit into
masterfrom
feature/issue-1923-sqlite-text-bytes

Conversation

@fglock

@fglock fglock commented Oct 29, 2026 •

Copy link
Copy Markdown
Owner

Summary

  • Preserve raw SQLite TEXT bytes when JDBC would replace invalid UTF-8 during DBI array and hash fetches.
  • Keep Unicode fallback behavior for valid UTF-8 and return invalid byte sequences as byte strings.
  • Add regression coverage and a changelog entry.

Fixes #1923

Validation

  • nice -n 19 make passed on the refreshed source tree based on current master (b6546aba3c82e53642ca01b25ffdf2658cb32bb5), published as 7088249fdc66a96f53acd1f08e8205606bd72c09.
  • nice -n 19 make check-links passed on that tree.
  • The new regression, dbi_sqlite_unicode_mode.t, and dbi_storable_bytes.t pass on JVM and interpreter backends; the new regression also passes under system Perl.
  • The new test fails on the unfixed parent on both PerlOnJava backends.
  • HTTP-Cookies-Chrome 4.001 t/_get_rows.t, t/load.t, and t/save.t passed on both backends against the same DBI fix before refreshing the branch onto current master.

Read SQLite TEXT values as raw bytes before JDBC can replace malformed UTF-8. Preserve the existing Unicode mode for valid UTF-8 and add DBI regression coverage.

Generated with Codex (https://openai.com/codex)

Co-Authored-By: Codex <158243242+openai-codex[bot]@users.noreply.github.com>
@fglock
fglock force-pushed the feature/issue-1923-sqlite-text-bytes branch from 5832b55 to 7088249 Compare October 29, 2026 15:20
@fglock
fglock marked this pull request as ready for review October 29, 2026 15:20
@fglock
fglock merged commit 394157f into master Oct 29, 2026
2 checks passed
Sign up for free to 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.

Crypt::Rijndael CBC decrypt rejects Chrome cookie payloads accepted by XS

1 participant