[
https://issues.apache.org/jira/browse/THRIFT-4658?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16675108#comment-16675108
]
Allen George commented on THRIFT-4658:
--------------------------------------
I changed the "Fix Version/s" to 0.12.0. I'll also create a separate PR for
master.
> Rust's TBinaryInputProtocol fails when strict is false
> ------------------------------------------------------
>
> Key: THRIFT-4658
> URL: https://issues.apache.org/jira/browse/THRIFT-4658
> Project: Thrift
> Issue Type: Bug
> Components: Rust - Library
> Affects Versions: 0.11.0
> Environment:
> `rustup show` output:
> Default host: x86_64-apple-darwin
> installed toolchains
> --------------------
> stable-x86_64-apple-darwin
> nightly-x86_64-apple-darwin
> active toolchain
> ----------------
> stable-x86_64-apple-darwin (default)
> rustc 1.30.0 (da5f414c2 2018-10-24)
> Reporter: J W
> Assignee: Allen George
> Priority: Major
> Fix For: 0.12.0
>
>
> When use `TBinaryInputProtocol::new(..., false)`, any trivial example will
> fail:
> service TestService {
> bool Test()
> }
>
> Problem is here:
> [https://github.com/apache/thrift/blob/master/lib/rs/src/protocol/binary.rs#L126]
> with_capacity() allocates space, but len() of resulting Vec<> is 0.
> read_exact() reads 0 bytes and read_byte() below receives first byte of the
> string which may or may not convert to TMessageType.
> Change it to:
> let mut name_buf: Vec<u8> = vec![0; name_size];
>
>
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)