[ http://issues.apache.org/jira/browse/DERBY-121?page=all ]

A B updated DERBY-121:
----------------------

    Fix Version: 10.1.0.0

> Network Server reading blob/clob data size
> ------------------------------------------
>
>          Key: DERBY-121
>          URL: http://issues.apache.org/jira/browse/DERBY-121
>      Project: Derby
>         Type: Bug
>   Components: Network Server
>     Versions: 10.1.0.0
>  Environment: The is a bit shift typo in Network Server reading clob/blob 
> data size
>     Reporter: Lynh Nguyen
>     Assignee: A B
>     Priority: Minor
>      Fix For: 10.1.0.0
>  Attachments: derby-121_2.stat, derby-121_3.patch
>
> in DDMReader.java 
> ...
> ... readLengthAndCodePoint() ... { 
> ...
> switch (numberOfExtendedLenBytes) {
>                       case 8:
>                                ddmScalarLen =
>                                       ((buffer[pos++] & 0xff) << 64) +
>                                       ((buffer[pos++] & 0xff) << 56) +
>                                       ((buffer[pos++] & 0xff) << 48) +
>                                       ((buffer[pos++] & 0xff) << 40) +
>                                       ((buffer[pos++] & 0xff) << 32) +
>                                       ((buffer[pos++] & 0xff) << 16) +
>                                       ((buffer[pos++] & 0xff) << 8) +
>                                       ((buffer[pos++] & 0xff) << 0);
>                               adjustSize = 12;
>                               break;
>                       case 6:
>                               ddmScalarLen =
>                                       ((buffer[pos++] & 0xff) << 48) +
>                                       ((buffer[pos++] & 0xff) << 40) +
>                                       ((buffer[pos++] & 0xff) << 32) +
>                                       ((buffer[pos++] & 0xff) << 16) +
>                                       ((buffer[pos++] & 0xff) << 8) +
>                                       ((buffer[pos++] & 0xff) << 0);
>                               adjustSize = 10;
>                               break;
>                       case 4:
>                               ddmScalarLen =
>                                       ((buffer[pos++] & 0xff) << 32) +
>                                       ((buffer[pos++] & 0xff) << 16) +
>                                       ((buffer[pos++] & 0xff) << 8) +
>                                       ((buffer[pos++] & 0xff) << 0);
>                               adjustSize = 8;
>                               break;
> ...
> The shift bits should be in order:
> 0,8,16,24 
> 0,8,16,24,32,40
> 0,8,16,24,32,40,48,56
> This will only affect a lob if its length requires at least 24 bits--i.e. if 
> the lob has a length of at least 2^24 bytes.

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

Reply via email to