Fraser Adams created PROTON-662:
-----------------------------------
Summary: 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)