UTF8 length marshalling bug in openwire readString and writeString.
-------------------------------------------------------------------
Key: AMQCPP-235
URL: https://issues.apache.org/activemq/browse/AMQCPP-235
Project: ActiveMQ C++ Client
Issue Type: Bug
Components: Openwire
Environment: Windows XP / Visual Studio 2005
Reporter: Martin Schlapfer
Assignee: Timothy Bish
Priority: Minor
In investigating a bug for the check "if( str->size() > 65536 )" which should
be "if( str->size() > 65535 )" in writeString() , I found a couple of other
problems:
(1) The OpenwireStringSupport::readString method should read the utf8 length as
an unsigned short rather than short. The problem is that utf8 encoded strings
(using writeString) longer than 32768 will become truncated when read back
using readString().
(2) The writeString() method should also check the value of utflen after
determining the UTF8 length of the encoded string, since with the support of
characters greater than value 127, encodings of 2 UTF8 bytes per byte can exist.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.