You are viewing a plain text version of this content. The canonical link for it is here.
Posted to proton@qpid.apache.org by "ASF subversion and git services (JIRA)" <ji...@apache.org> on 2014/09/06 17:19:28 UTC

[jira] [Commented] (PROTON-662) decoder.c pn_decoder_decode_value has a test that won't correctly execute.

    [ https://issues.apache.org/jira/browse/PROTON-662?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14124528#comment-14124528 ] 

ASF subversion and git services commented on PROTON-662:
--------------------------------------------------------

Commit 1622873 from [~fadams] in branch 'proton/trunk'
[ https://svn.apache.org/r1622873 ]

PROTON-662: decoder.c pn_decoder_decode_value has a test that won't correctly execute.

> decoder.c pn_decoder_decode_value has a test that won't correctly execute.
> --------------------------------------------------------------------------
>
>                 Key: PROTON-662
>                 URL: https://issues.apache.org/jira/browse/PROTON-662
>             Project: Qpid Proton
>          Issue Type: Bug
>          Components: proton-c
>            Reporter: Fraser Adams
>            Priority: Minor
>
> In decoder.c pn_decoder_decode_value there is a block of code:
>         pn_type_t type = pn_code2type(acode);
>         if (type < 0) return type;
> The test will not execute correctly because pn_type_t is an unsigned enumeration. The reason for the test seems to be to trap the case where pn_code2type does:
> return (pn_type_t) PN_ARG_ERR;
> rather than returning the type.
> Compiling with Clang rather than gcc flags this warning (which prevents using warnings as errors with Clang):
>  warning: 
>       comparison of unsigned enum expression < 0 is always false
>       [-Wtautological-compare]
>         if (type < 0) return type;
>             ~~~~ ^ ~
> Trivial fix is to use correct casting:
>         if ((int)type < 0) return (int)type;



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)