[jboss-jira] [JBoss JIRA] Commented: (JBSER-93) StringUtil.saveString()/.readString() length bug

Andrei Chiritescu (JIRA) jira-events at lists.jboss.org
Tue Feb 13 13:29:30 EST 2007


    [ http://jira.jboss.com/jira/browse/JBSER-93?page=comments#action_12352974 ] 
            
Andrei Chiritescu commented on JBSER-93:
----------------------------------------

bq. Have you looked at recent code? 

I have worked/tested with the 'jboss-serialization-1.0.2.GA' version.

> StringUtil.saveString()/.readString() length bug 
> -------------------------------------------------
>
>                 Key: JBSER-93
>                 URL: http://jira.jboss.com/jira/browse/JBSER-93
>             Project: JBoss Serialization
>          Issue Type: Bug
>            Reporter: Andrei Chiritescu
>         Assigned To: Clebert Suconic
>         Attachments: StringUtilTest.java
>
>
> In the StringUtil.saveString() method the length is saved using the following code :
> <code>
>     if (len>0xffff)
>     {
>         out.writeBoolean(true); // the size is bigger than a short value
>         out.writeLong(len);
>     }
>     else
>     {
>         out.writeBoolean(false);
>         out.writeShort((short)len);
>     }
> </code>
> .... and in the StringUtil.readString() the length is read using :
> <code>
>     boolean isLong = input.readBoolean();
>     if (isLong)
>     {
>         size = input.readLong();
>     }
>     else
>     {
>         size = input.readShort();
>     }
> </code>
> The problem is with string that have a length between '7FFF' and 'FFFF' - they will have the length stored as a short but when the length will be read for deserialization readShort() will return a negative number. 
> To fix this you'll have to either use 7FFF instead of FFFF in the saveString() when comparing or use 'size = input.readUnsignedShort();' when reading the length in the readString().

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        



More information about the jboss-jira mailing list