fallintoplace opened a new pull request, #991:
URL: https://github.com/apache/arrow-go/pull/991

   ### Rationale for this change
   
   Once an IPC message has started, a missing length, metadata block, or body 
is a truncated frame rather than a clean end of stream. `io.ReadFull` returns 
`io.EOF` when none of the requested bytes are available, and the IPC stream 
reader treats errors matching `io.EOF` as normal completion. As a result, some 
truncated messages were silently accepted.
   
   ### What changes are included in this PR?
   
   Convert `io.EOF` to `io.ErrUnexpectedEOF` when a required message component 
is missing after framing has begun. EOF before the next continuation indicator 
and explicit EOS markers keep their existing behavior.
   
   Add coverage for truncation at the message length, metadata, and body, plus 
a stream-level regression test that verifies the error reaches `Reader.Err()`.
   
   ### Are these changes tested?
   
   Yes. `go test ./arrow/ipc` and focused race tests pass.
   
   ### Are there any user-facing changes?
   
   Malformed IPC streams now report an unexpected EOF instead of appearing to 
end successfully. Valid streams are unchanged.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to