[
https://issues.apache.org/activemq/browse/AMQCPP-235?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Timothy Bish updated AMQCPP-235:
--------------------------------
Fix Version/s: 3.0
2.2.6
> 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
> Fix For: 2.2.6, 3.0
>
> Attachments: OpenwireStringSupport.cpp.patch,
> OpenwireStringSupportTest.cpp.patch, OpenwireStringSupportTest.h.patch
>
>
> 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.