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] Created: (DERBY-3739) Calls to ArrayInputStream.skip() may overflow and have unexpected results
Date Fri, 27 Jun 2008 14:30:45 GMT
Calls to ArrayInputStream.skip() may overflow and have unexpected results
-------------------------------------------------------------------------

                 Key: DERBY-3739
                 URL: https://issues.apache.org/jira/browse/DERBY-3739
             Project: Derby
          Issue Type: Bug
          Components: Store
    Affects Versions: 10.5.0.0
            Reporter: Knut Anders Hatlen
            Assignee: Knut Anders Hatlen
            Priority: Minor


If ArrayInputStream.skip() is called with a large value (like Long.MAX_VALUE) an internal
calculation may overflow and cause unexpected results.

It's the line which says

    if ((position + count) > end) {

that can overflow. If count (a long) is so big that position + count doesn't fit in a long,
the condition will evaluate to false although it should have evaluated to true. Changing the
condition to (count > end - position) will fix the problem. Alternatively, we could simplify
the entire method body to:

    count = Math.min(count, end - position);
    position += count;
    return count;

-- 
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