[
https://issues.apache.org/jira/browse/MINIFICPP-665?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16686699#comment-16686699
]
ASF GitHub Bot commented on MINIFICPP-665:
------------------------------------------
Github user arpadboda commented on a diff in the pull request:
https://github.com/apache/nifi-minifi-cpp/pull/435#discussion_r232960242
--- Diff: libminifi/src/io/BaseStream.cpp ---
@@ -143,15 +147,19 @@ int BaseStream::read(uint8_t *value, int len) {
* @param buflen
*/
int BaseStream::readData(std::vector<uint8_t> &buf, int buflen) {
- return Serializable::read(&buf[0], buflen,
reinterpret_cast<DataStream*>(composable_stream_));
+ return Serializable::read(&buf[0], buflen, composable_stream_);
}
/**
* Reads data and places it into buf
* @param buf buffer in which we extract data
* @param buflen
*/
int BaseStream::readData(uint8_t *buf, int buflen) {
- return Serializable::read(buf, buflen,
reinterpret_cast<DataStream*>(composable_stream_));
+ if (composable_stream_ == this) {
--- End diff --
Likely?
> Fix basestream references
> -------------------------
>
> Key: MINIFICPP-665
> URL: https://issues.apache.org/jira/browse/MINIFICPP-665
> Project: NiFi MiNiFi C++
> Issue Type: Improvement
> Reporter: Mr TheSegfault
> Assignee: Mr TheSegfault
> Priority: Major
>
> At some point basestream was changed to be a composable pointer ( hence the
> name base stream ) as a wrapper for a variety of streams. this caused a bug
> where a self reference could occur. We overload this stream to be a self
> reference since it extends DataStream. This is a very likely usage so we can
> avoid the bugs by simply checking if the composition is a reference to self.
> This reference to self won't be removed in the interest of time and re-using
> Serializable's interface.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)