You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

139 lines
2.4 KiB

/*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
package codetoanalyze.java.bufferoverrun;
import java.util.ArrayList;
class Array {
private ArrayList a = new ArrayList<>();
void collection_add_zero_Good() {
a.add(0, 100);
}
ArrayList collection_remove_from_empty_Bad() {
ArrayList b = new ArrayList<>();
b.remove(0);
return b;
}
void null_pruning1_Good() {
if (a == null) {
if (a != null) {
int[] arr = {1, 2, 3, 4, 5};
arr[10] = 1;
}
}
}
void null_pruning1_Bad() {
if (a == null) {
if (a == null) {
int[] arr = {1, 2, 3, 4, 5};
arr[10] = 1;
}
}
}
void null_pruning2_Good_FP() {
if (a != null) {
if (a == null) {
int[] arr = {1, 2, 3, 4, 5};
arr[10] = 1;
}
}
}
void null_pruning2_Bad() {
if (a != null) {
if (a != null) {
int[] arr = {1, 2, 3, 4, 5};
arr[10] = 1;
}
}
}
void negative_alloc_Bad() {
a = new ArrayList<>(-1);
}
void zero_alloc_Good() {
a = new ArrayList<>(0);
}
void positive_alloc_Good() {
a = new ArrayList<>(10);
}
void iterate_collection_Good(ArrayList<Integer> a) {
if (a.size() > 10) {
int x = a.get(9);
}
}
void call_iterate_collection_Good() {
ArrayList<Integer> x = new ArrayList<Integer>();
x.add(0);
x.add(0);
x.add(0);
x.add(0);
x.add(0);
this.iterate_collection_Good(x);
}
void iterate_collection_Bad(ArrayList<Integer> a) {
if (a.size() >= 5) {
int x = a.get(5);
}
}
void call_iterate_collection_Bad() {
ArrayList<Integer> x = new ArrayList<Integer>();
x.add(0);
x.add(0);
x.add(0);
x.add(0);
x.add(0);
this.iterate_collection_Bad(x);
}
boolean b;
int zero_to_five() {
return b ? 0 : 5;
}
void prune_assign_exp_Good() {
int idx;
int[] arr = new int[5];
if ((idx = zero_to_five()) != 5) {
arr[idx] = 0;
}
}
void prune_assign_exp_Bad() {
int idx;
int[] arr = new int[3];
if ((idx = zero_to_five()) != 5) {
arr[idx] = 0;
}
}
enum MyEnum {
MyEnumA
};
void array_length_Bad() {
int[] arr = new int[5];
if (MyEnum.values().length == 0) {
arr[10] = 0;
} else {
arr[10] = 0;
}
}
}