Red Hat Bugzilla – Bug 961444
Variant decoding/conversion incorrect for at least bin8, int8, uint8 data types
Last modified: 2014-11-09 17:39:08 EST
+++ This bug was initially created as a clone of Bug #961014 +++
Copied from https://issues.apache.org/jira/browse/QPID-4820:
In the toVariant method in Codecs.cpp (https://github.com/apache/qpid/blob/trunk/qpid/cpp/src/qpid/amqp_0_10/Codecs.cpp#L99), the case statements for bin8, int8, and uint8 are incorrect.
bin8 should be 0x00 (it's currently 0x01)
int8 should be 0x01 (it's currently 0x02)
uint8 should be 0x02 (it's currently 0x03)
If you send a message like
message.getProperties["key"] = boost::uint8_t(255)
When you receive it, the value of that property comes out as -1, as the client incorrectly decodes the uint8 as an int8.
It might be worth reviewing the entire switch block to see if anything else needs adjusting.
--- Additional comment from Gordon Sim on 2013-05-08 11:40:16 EDT ---
Fixed upstream: http://svn.apache.org/viewvc?view=revision&revision=1480327
Tested on RHEL5 and RHEL6, both i386 and x86_64. This issue has been fixed.
Packages used for testing: