Skip to content

GH-49697: [C++][CI] Check IPC file body bounds are in sync with decoder outcome#49698

Draft
pitrou wants to merge 1 commit intoapache:mainfrom
pitrou:gh49697-ipc-file-validation
Draft

GH-49697: [C++][CI] Check IPC file body bounds are in sync with decoder outcome#49698
pitrou wants to merge 1 commit intoapache:mainfrom
pitrou:gh49697-ipc-file-validation

Conversation

@pitrou
Copy link
Copy Markdown
Member

@pitrou pitrou commented Apr 9, 2026

Rationale for this change

When we read an IPC message from an IPC file, we validate its associated body size against the amount required by the streaming decoder. However, we're currently only checking that the body size is large enough, not that it's exactly as expected.

An invalid IPC file might advertise in its footer a metaDataLength that's larger than the actual serialized Flatbuffers payload. In that case, the associated body would start before the offset computed from the IPC file footer.

What changes are included in this PR?

Strengthen body size check against expected decoder read, to ensure that the metadata length advertised in the IPC file footer is consistent with the actual size of the Flatbuffers-serialized metadata.

Are these changes tested?

By additional fuzz regression file.

Are there any user-facing changes?

No.

@github-actions github-actions bot added the awaiting review Awaiting review label Apr 9, 2026
@pitrou
Copy link
Copy Markdown
Member Author

pitrou commented Apr 9, 2026

@github-actions crossbow submit -g cpp

@github-actions
Copy link
Copy Markdown

github-actions bot commented Apr 9, 2026

Revision: 44711e3

Submitted crossbow builds: ursacomputing/crossbow @ actions-cc0beb58ed

Task Status
example-cpp-minimal-build-static GitHub Actions
example-cpp-minimal-build-static-system-dependency GitHub Actions
example-cpp-tutorial GitHub Actions
test-build-cpp-fuzz GitHub Actions
test-conda-cpp GitHub Actions
test-conda-cpp-valgrind GitHub Actions
test-debian-13-cpp-amd64 GitHub Actions
test-debian-13-cpp-i386 GitHub Actions
test-debian-experimental-cpp-gcc-15 GitHub Actions
test-fedora-42-cpp GitHub Actions
test-ubuntu-22.04-cpp GitHub Actions
test-ubuntu-22.04-cpp-20 GitHub Actions
test-ubuntu-22.04-cpp-bundled GitHub Actions
test-ubuntu-22.04-cpp-emscripten GitHub Actions
test-ubuntu-22.04-cpp-no-threading GitHub Actions
test-ubuntu-24.04-cpp GitHub Actions
test-ubuntu-24.04-cpp-bundled-offline GitHub Actions
test-ubuntu-24.04-cpp-gcc-13-bundled GitHub Actions
test-ubuntu-24.04-cpp-gcc-14 GitHub Actions
test-ubuntu-24.04-cpp-minimal-with-formats GitHub Actions
test-ubuntu-24.04-cpp-thread-sanitizer GitHub Actions

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

Labels

awaiting review Awaiting review

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant