mirror of
https://github.com/github/codeql.git
synced 2026-04-22 23:35:14 +02:00
Java: Add WithoutElement model for List.clear and add appropriate test.
This commit is contained in:
@@ -159,6 +159,7 @@ extensions:
|
||||
- ["java.util", "List", True, "set", "(int,Object)", "", "Argument[this].Element", "ReturnValue", "value", "manual"]
|
||||
- ["java.util", "List", True, "set", "(int,Object)", "", "Argument[1]", "Argument[this].Element", "value", "manual"]
|
||||
- ["java.util", "List", True, "subList", "", "", "Argument[this].Element", "ReturnValue.Element", "value", "manual"]
|
||||
- ["java.util", "List", True, "clear", "()", "", "Argument[this].WithoutElement", "Argument[this]", "value", "manual"]
|
||||
- ["java.util", "ListIterator", True, "add", "(Object)", "", "Argument[0]", "Argument[this].Element", "value", "manual"]
|
||||
- ["java.util", "ListIterator", True, "previous", "", "", "Argument[this].Element", "ReturnValue", "value", "manual"]
|
||||
- ["java.util", "ListIterator", True, "set", "(Object)", "", "Argument[0]", "Argument[this].Element", "value", "manual"]
|
||||
@@ -424,7 +425,6 @@ extensions:
|
||||
# When `WithoutElement` is implemented, these should be changed to summary models of the form `Argument[this].WithoutElement -> Argument[this]`.
|
||||
- ["java.util", "Collection", "removeIf", "(Predicate)", "summary", "manual"]
|
||||
- ["java.util", "Iterator", "remove", "()", "summary", "manual"]
|
||||
- ["java.util", "List", "clear", "()", "summary", "manual"]
|
||||
- ["java.util", "List", "remove", "(Object)", "summary", "manual"]
|
||||
- ["java.util", "Map", "clear", "()", "summary", "manual"]
|
||||
- ["java.util", "Set", "clear", "()", "summary", "manual"]
|
||||
|
||||
@@ -302,6 +302,16 @@ public class B {
|
||||
List out = null;
|
||||
Collection in = storeElementList(source()); out.addAll(0,in); sink(readElement(out)); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "java.util;List;true;clear;;;Argument[this].WithoutElement;Argument[this];value;manual"
|
||||
List out = null;
|
||||
List in = storeElementList(source()); out = in; out.clear(); sink(readElement(out)); // No flow
|
||||
}
|
||||
{
|
||||
// "java.util;List;true;clear;;;Argument[this].WithoutElement;Argument[this];value;manual"
|
||||
List out = null;
|
||||
List in = (List)source(); out = in; out.clear(); sink(out); // $ hasValueFlow
|
||||
}
|
||||
{
|
||||
// "java.util;Vector;true;elementAt;(int);;Element of Argument[this];ReturnValue;value;manual",
|
||||
Object out = null;
|
||||
|
||||
Reference in New Issue
Block a user