You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Dilraj Singh (JIRA)" <ji...@apache.org> on 2018/03/25 07:07:00 UTC

[jira] [Created] (CLI-283) Missing Null pointer checks in CommandLine.java

Dilraj Singh created CLI-283:
--------------------------------

             Summary: Missing Null pointer checks in CommandLine.java
                 Key: CLI-283
                 URL: https://issues.apache.org/jira/browse/CLI-283
             Project: Commons CLI
          Issue Type: Bug
          Components: CLI-2.x
    Affects Versions: 1.4
            Reporter: Dilraj Singh


- [CommandLine.java #L233 |https://github.com/apache/commons-cli/blob/b0024d482050a08efc36c3cabee37c0af0e57a10/src/main/java/org/apache/commons/cli/CommandLine.java#L233]
 Method call to `getValuesList()` returns the possible values of `Option` for which it is called as List or returns `null`. In case it returns `null`, `addAll()` method call on type `List` with `null` as an argument will lead to a NullPointerException. This can be prevented by explicitly checking and handling the cases when it might return null. I have made changes for the same

 - [CommandLine.java #L260 |https://github.com/apache/commons-cli/blob/b0024d482050a08efc36c3cabee37c0af0e57a10/src/main/java/org/apache/commons/cli/CommandLine.java#L260]
 As per the implementation of `stripLeadingHyphens(String)`, there exists cases when it might return `null`. And calling `equals` method on a null return value ([#L263 |https://github.com/apache/commons-cli/blob/b0024d482050a08efc36c3cabee37c0af0e57a10/src/main/java/org/apache/commons/cli/CommandLine.java#L263]) will lead to null pointer exception. So as to prevent this I have made changes to explicitly return null in case `stripLeadingHyphens` returns null

 - [CommandLine.java #L472 |https://github.com/apache/commons-cli/blob/b0024d482050a08efc36c3cabee37c0af0e57a10/src/main/java/org/apache/commons/cli/CommandLine.java#L472] 
 There is a possibility that `addOption` method is called with null as an argument. In that case we will be adding null values to our list of processed options (as `List` does not thrown any null pointer exception even if `add` method is called with null values). So as to prevent this we need to make sure that value that we are adding to list of processed option is not null.

I have created a pull request for addressing these issues, [see|https://github.com/apache/commons-cli/pull/24]



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)