You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Duo Zhang (Jira)" <ji...@apache.org> on 2023/09/20 13:58:00 UTC

[jira] [Resolved] (HBASE-28101) Should check the return value of protobuf Message.mergeDelimitedFrom

     [ https://issues.apache.org/jira/browse/HBASE-28101?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Duo Zhang resolved HBASE-28101.
-------------------------------
    Hadoop Flags: Reviewed
        Assignee: Duo Zhang
      Resolution: Fixed

Pushed to branch-2.4+.

Thanks [~huangzhuoyue] for reviewing!

> Should check the return value of protobuf Message.mergeDelimitedFrom
> --------------------------------------------------------------------
>
>                 Key: HBASE-28101
>                 URL: https://issues.apache.org/jira/browse/HBASE-28101
>             Project: HBase
>          Issue Type: Bug
>          Components: Protobufs, rpc
>            Reporter: Duo Zhang
>            Assignee: Duo Zhang
>            Priority: Critical
>             Fix For: 2.6.0, 2.4.18, 2.5.6, 3.0.0-beta-1
>
>
> Found this problem while upgrading thirdparty dependencies.
> The javadoc of mergeDelimitedFrom says
> {code}
>     /**
>      * Like {@link #mergeFrom(InputStream)}, but does not read until EOF. Instead, the size of the
>      * message (encoded as a varint) is read first, then the message data. Use {@link
>      * MessageLite#writeDelimitedTo(OutputStream)} to write messages in this format.
>      *
>      * @return true if successful, or false if the stream is at EOF when the method starts. Any
>      *     other error (including reaching EOF during parsing) causes an exception to be thrown.
>      * @throws InvalidProtocolBufferException the bytes read are not syntactically correct
>      *     according to the protobuf wire format specification. The data is corrupt, incomplete,
>      *     or was never a protobuf in the first place.
>      * @throws IOException an I/O error reading from the stream
>      */
> {code}
> So we should not ignore the return value, otherwise we may get an incomplete message.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)