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
    Priority: Minor


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 the larger clob/blob (over 64K ...)


-- 
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
-
If you want more information on JIRA, or have a bug to report see:
   http://www.atlassian.com/software/jira

Reply via email to