[ 
https://issues.apache.org/jira/browse/CODEC-312?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Gary D. Gregory resolved CODEC-312.
-----------------------------------
    Fix Version/s: 1.16.1
       Resolution: Fixed

PR merged.

 

> MatchRatingApproachEncoder.encode throw StringIndexOutOfBound
> -------------------------------------------------------------
>
>                 Key: CODEC-312
>                 URL: https://issues.apache.org/jira/browse/CODEC-312
>             Project: Commons Codec
>          Issue Type: Bug
>            Reporter: Sheung Chi Chan
>            Priority: Minor
>              Labels: StringIndexOutOfBound
>             Fix For: 1.16.1
>
>
> The {{encode(String)}} method takes in a random String and checks if it is 
> empty. It will go through a few rounds of processing if the given String is 
> not empty. It does contain a check to ensure the String is not empty before 
> processing. But it has some missing checks. Each of the 3 processing methods 
> {{cleanName(name)}} / {{removeVowels(name)}} / 
> {{removeDoubleConsonants(name)}} remove some characters from the String and 
> could cause the string to become empty (length = 0). And that results in 
> StringIndexOutOfBoundException when {{substring()}} method is called in the 
> next processing method. For example, if the randomly provided string is 
> {{{}..{}}}, it gets past the first checking in the encode method and enters 
> the {{cleanName(name)}} method. The {{cleanName(name)}} method removes the 
> two dots and returns an empty string. Without the additional checking, it 
> causes the StringIndexOutOfBoundException in the {{substring()}} method call 
> in the next {{removeVowels(name)}} method call cause the length of the string 
> is 0.
> Possible fix could add some conditional checking to ensure the string is not 
> empty after each method call. If it is empty after any method call, it will 
> simply return {{EMPTY}} and avoid continuing processing onto the next 
> processing method.
> We found this bug using fuzzing by way of OSS-Fuzz. It is reported at 
> [https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=64359].



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to