You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@geode.apache.org by "ASF GitHub Bot (Jira)" <ji...@apache.org> on 2025/02/06 20:14:00 UTC
[jira] [Updated] (GEODE-10095) TcrConnection::readHandshakeData reads too many bytes
[ https://issues.apache.org/jira/browse/GEODE-10095?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
ASF GitHub Bot updated GEODE-10095:
-----------------------------------
Labels: pull-request-available (was: )
> TcrConnection::readHandshakeData reads too many bytes
> -----------------------------------------------------
>
> Key: GEODE-10095
> URL: https://issues.apache.org/jira/browse/GEODE-10095
> Project: Geode
> Issue Type: Bug
> Components: native client
> Reporter: Blake Bender
> Assignee: Matthew Reddington
> Priority: Major
> Labels: pull-request-available
>
> This method is called to read bytes from a socket, and return said data in a `std::vector<int8_t>`. For some inexplicable (inexcusable?) reason, the method always adds a 0 byte to the end of the vector, as if it were null-terminating a string. So, `readHandshakeData(1)` returns 2 bytes, `readHandshakeData(5)` returns 6 bytes, etc.
> This is extremely misleading, given the name of the method and the fact that the requested number of bytes is a parameter passed in. Also, in no circumstance is this method used to actually read a string, i.e. something that may require null-termination. Please remove the extra byte from the returned vector, and if possible add a unit test to the suite that reads _n_ bytes and asserts that the method always returns _n_ bytes.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)