db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Knut Anders Hatlen (JIRA)" <j...@apache.org>
Subject [jira] Commented: (DERBY-4060) Blob.getBinaryStream(long,long) is off by one for the pos+len check
Date Wed, 04 Mar 2009 12:47:56 GMT

    [ https://issues.apache.org/jira/browse/DERBY-4060?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12678719#action_12678719
] 

Knut Anders Hatlen commented on DERBY-4060:
-------------------------------------------

The patch looks good to me. (I was wondering what we should do with the translations, but
it appears that we are only required to do something if the message parameters are changed,
see comment near the top of messages.xml. For now it's probably better to leave the (possibly
inaccurate) translated messages than to remove them.)

> Blob.getBinaryStream(long,long) is off by one for the pos+len check
> -------------------------------------------------------------------
>
>                 Key: DERBY-4060
>                 URL: https://issues.apache.org/jira/browse/DERBY-4060
>             Project: Derby
>          Issue Type: Bug
>          Components: JDBC, Network Client
>    Affects Versions: 10.3.3.1, 10.4.2.0, 10.5.0.0
>            Reporter: Trejkaz
>            Assignee: Kristian Waagan
>             Fix For: 10.5.0.0
>
>         Attachments: derby-4060-1a-sub_stream_fix.diff, derby-4060-1a-sub_stream_fix.stat,
derby-4060-1b-sub_stream_fix.diff, derby-4060-2a-doc_changes.diff
>
>
> If you have a BLOB of length 20, and call blob.getBinaryStream(11,10), it will give you
an error:
>     java.sql.SQLException: Sum of position('11') and length('10') is greater than the
size of the LOB.
> This is following word for word an error in the JDBC Javadoc:
>         SQLException - if pos is less than 1 or if pos is greater than the number of
bytes in the Blob or if pos + length is greater than the number of bytes in the Blob
> So it's checking 11 + 10 > 20, but it should check 11 + 10 > 21    (pos + len >
blob.length() + 1) to allow reading the last byte.
> The Javadoc for Clob.getCharacterStream(long,long) has similar wording so it may have
the same issue.
> Likewise, the client driver may have the same issue -- I haven't yet checked.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message