RAM FileSystem resize throws ArrayOOBE when shrinking in size.
--------------------------------------------------------------

                 Key: VFS-406
                 URL: https://issues.apache.org/jira/browse/VFS-406
             Project: Commons VFS
          Issue Type: Bug
    Affects Versions: 2.0
            Reporter: Miroslav Pokorny


Im targetting 2.0 as it is the official download.

The fix is quite simple.

FILE: RamFileObject

ORIGINAL
    void resize(int newSize)
    {
        int size = this.size();
        byte[] newBuf = new byte[newSize];
        System.arraycopy(this.buffer, 0, newBuf, 0, size);
        this.buffer = newBuf;
        updateLastModified();
    }
// when shrinking size > newSize thus an AOOBE will be thrown.

FIXED
    void resize(final int newSize) {
        final int size = this.size();
        final byte[] newBuf = new byte[newSize];

        // HACK fixed error which prevented resizing to a small buffer.
        System.arraycopy(this.buffer, 0, newBuf, 0, Math.min(newSize, size));
        this.buffer = newBuf;
        this.updateLastModified();
    }



--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to