commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sebb (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (LANG-1162) StringUtils#equals fails with Index OOBE on non-Strings with identical leading prefix
Date Mon, 10 Aug 2015 21:26:45 GMT

    [ https://issues.apache.org/jira/browse/LANG-1162?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14680793#comment-14680793
] 

Sebb commented on LANG-1162:
----------------------------

The equals(...) method could check that the lengths are equal before calling regionMatches(...)
as there is no point checking the contents if they differ.
This is already done by the related equalsIgnoreCase(...) method.

However the underlying method CharSequence.regionMatches(...) should ideally behave the same
way as String.regionMatches(...), i.e. it should return false if the regions are different
lengths.

> StringUtils#equals fails with Index OOBE on non-Strings with identical leading prefix
> -------------------------------------------------------------------------------------
>
>                 Key: LANG-1162
>                 URL: https://issues.apache.org/jira/browse/LANG-1162
>             Project: Commons Lang
>          Issue Type: Bug
>    Affects Versions: 3.4
>            Reporter: Sebb
>            Assignee: Sebb
>
> From the Commons User mailing list:
> {quote}
> StringUtils.equals(cs1,cs2) delegates to CharSequence.regionMatches(...) in a way that
causes IndexOutOfBounds when either of cs1/cs2 isn't a String.
> Specifically, comparing "foo" and "foobar" for non-String CharSequences bombs due to
CharSequenceUtils.regionMatches(cs1, false, 0, cs2, 0, Math.max(cs1.length(), cs2.length()))
because regionMatches doesn't check for input exhaustion.
> {quote}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message