mirror of
https://github.com/github/codeql.git
synced 2025-12-18 09:43:15 +01:00
475 lines
16 KiB
Java
475 lines
16 KiB
Java
package generatedtest;
|
|
|
|
import com.google.gson.Gson;
|
|
import com.google.gson.JsonArray;
|
|
import com.google.gson.JsonElement;
|
|
import com.google.gson.JsonObject;
|
|
import com.google.gson.JsonPrimitive;
|
|
import com.google.gson.reflect.TypeToken;
|
|
import com.google.gson.stream.JsonReader;
|
|
import com.google.gson.stream.JsonWriter;
|
|
import java.io.Reader;
|
|
import java.io.Writer;
|
|
import java.lang.reflect.Type;
|
|
import java.util.List;
|
|
import java.util.Map;
|
|
import java.util.Set;
|
|
|
|
// Test case generated by GenerateFlowTestCase.ql
|
|
public class Test {
|
|
|
|
<K> K getMapKey(Map<K,?> map) { return map.keySet().iterator().next(); }
|
|
<T> T getElement(Iterable<T> it) { return it.iterator().next(); }
|
|
<V> V getMapValue(Map<?,V> map) { return map.get(null); }
|
|
String getMapKeyDefault(JsonObject container) { return container.keySet().iterator().next(); }
|
|
<K> K getMapKeyDefault(Map.Entry<K,?> container) { return container.getKey(); }
|
|
JsonElement getMapValueDefault(JsonObject container) { return container.get(null); }
|
|
<V> V getMapValueDefault(Map.Entry<?,V> container) { return container.getValue(); }
|
|
JsonArray newWithElementDefault(JsonElement element) { JsonArray a = new JsonArray(); a.add(element); return a; }
|
|
JsonObject newWithMapKeyDefault(String key) { JsonObject o = new JsonObject(); o.add(key, (JsonElement) null); return o; }
|
|
JsonObject newWithMapValueDefault(JsonElement element) { JsonObject o = new JsonObject(); o.add(null, element); return o; }
|
|
Object source() { return null; }
|
|
void sink(Object o) { }
|
|
|
|
public void test() throws Exception {
|
|
|
|
{
|
|
// "com.google.gson.stream;JsonReader;false;nextName;;;Argument[this];ReturnValue;taint;manual"
|
|
String out = null;
|
|
JsonReader in = (JsonReader)source();
|
|
out = in.nextName();
|
|
sink(out); // $ hasTaintFlow
|
|
}
|
|
{
|
|
// "com.google.gson.stream;JsonReader;false;nextString;;;Argument[this];ReturnValue;taint;manual"
|
|
String out = null;
|
|
JsonReader in = (JsonReader)source();
|
|
out = in.nextString();
|
|
sink(out); // $ hasTaintFlow
|
|
}
|
|
{
|
|
// "com.google.gson;Gson;false;fromJson;;;Argument[0];ReturnValue;taint;manual"
|
|
Object out = null;
|
|
JsonElement in = (JsonElement)source();
|
|
Gson instance = null;
|
|
out = instance.fromJson(in, (Class)null);
|
|
sink(out); // $ hasTaintFlow
|
|
}
|
|
{
|
|
// "com.google.gson;Gson;false;fromJson;;;Argument[0];ReturnValue;taint;manual"
|
|
Object out = null;
|
|
JsonElement in = (JsonElement)source();
|
|
Gson instance = null;
|
|
out = instance.fromJson(in, (Type)null);
|
|
sink(out); // $ hasTaintFlow
|
|
}
|
|
{
|
|
// "com.google.gson;Gson;false;fromJson;;;Argument[0];ReturnValue;taint;manual"
|
|
Object out = null;
|
|
JsonElement in = (JsonElement)source();
|
|
Gson instance = null;
|
|
out = instance.fromJson(in, (TypeToken)null);
|
|
sink(out); // $ hasTaintFlow
|
|
}
|
|
{
|
|
// "com.google.gson;Gson;false;fromJson;;;Argument[0];ReturnValue;taint;manual"
|
|
Object out = null;
|
|
JsonReader in = (JsonReader)source();
|
|
Gson instance = null;
|
|
out = instance.fromJson(in, (Type)null);
|
|
sink(out); // $ hasTaintFlow
|
|
}
|
|
{
|
|
// "com.google.gson;Gson;false;fromJson;;;Argument[0];ReturnValue;taint;manual"
|
|
Object out = null;
|
|
JsonReader in = (JsonReader)source();
|
|
Gson instance = null;
|
|
out = instance.fromJson(in, (TypeToken)null);
|
|
sink(out); // $ hasTaintFlow
|
|
}
|
|
{
|
|
// "com.google.gson;Gson;false;fromJson;;;Argument[0];ReturnValue;taint;manual"
|
|
Object out = null;
|
|
Reader in = (Reader)source();
|
|
Gson instance = null;
|
|
out = instance.fromJson(in, (Class)null);
|
|
sink(out); // $ hasTaintFlow
|
|
}
|
|
{
|
|
// "com.google.gson;Gson;false;fromJson;;;Argument[0];ReturnValue;taint;manual"
|
|
Object out = null;
|
|
Reader in = (Reader)source();
|
|
Gson instance = null;
|
|
out = instance.fromJson(in, (Type)null);
|
|
sink(out); // $ hasTaintFlow
|
|
}
|
|
{
|
|
// "com.google.gson;Gson;false;fromJson;;;Argument[0];ReturnValue;taint;manual"
|
|
Object out = null;
|
|
Reader in = (Reader)source();
|
|
Gson instance = null;
|
|
out = instance.fromJson(in, (TypeToken)null);
|
|
sink(out); // $ hasTaintFlow
|
|
}
|
|
{
|
|
// "com.google.gson;Gson;false;fromJson;;;Argument[0];ReturnValue;taint;manual"
|
|
Object out = null;
|
|
String in = (String)source();
|
|
Gson instance = null;
|
|
out = instance.fromJson(in, (Class)null);
|
|
sink(out); // $ hasTaintFlow
|
|
}
|
|
{
|
|
// "com.google.gson;Gson;false;fromJson;;;Argument[0];ReturnValue;taint;manual"
|
|
Object out = null;
|
|
String in = (String)source();
|
|
Gson instance = null;
|
|
out = instance.fromJson(in, (Type)null);
|
|
sink(out); // $ hasTaintFlow
|
|
}
|
|
{
|
|
// "com.google.gson;Gson;false;fromJson;;;Argument[0];ReturnValue;taint;manual"
|
|
Object out = null;
|
|
String in = (String)source();
|
|
Gson instance = null;
|
|
out = instance.fromJson(in, (TypeToken)null);
|
|
sink(out); // $ hasTaintFlow
|
|
}
|
|
{
|
|
// "com.google.gson;Gson;false;newJsonReader;;;Argument[0];ReturnValue;taint;manual"
|
|
JsonReader out = null;
|
|
Reader in = (Reader)source();
|
|
Gson instance = null;
|
|
out = instance.newJsonReader(in);
|
|
sink(out); // $ hasTaintFlow
|
|
}
|
|
{
|
|
// "com.google.gson;Gson;false;newJsonWriter;;;Argument[0];ReturnValue;taint;manual"
|
|
JsonWriter out = null;
|
|
Writer in = (Writer)source();
|
|
Gson instance = null;
|
|
out = instance.newJsonWriter(in);
|
|
sink(out); // $ hasTaintFlow
|
|
}
|
|
{
|
|
// "com.google.gson;Gson;false;toJson;(JsonElement);;Argument[0];ReturnValue;taint;manual"
|
|
String out = null;
|
|
JsonElement in = (JsonElement)source();
|
|
Gson instance = null;
|
|
out = instance.toJson(in);
|
|
sink(out); // $ hasTaintFlow
|
|
}
|
|
{
|
|
// "com.google.gson;Gson;false;toJson;(JsonElement,Appendable);;Argument[0];Argument[1];taint;manual"
|
|
Appendable out = null;
|
|
JsonElement in = (JsonElement)source();
|
|
Gson instance = null;
|
|
instance.toJson(in, out);
|
|
sink(out); // $ hasTaintFlow
|
|
}
|
|
{
|
|
// "com.google.gson;Gson;false;toJson;(JsonElement,JsonWriter);;Argument[0];Argument[1];taint;manual"
|
|
JsonWriter out = null;
|
|
JsonElement in = (JsonElement)source();
|
|
Gson instance = null;
|
|
instance.toJson(in, out);
|
|
sink(out); // $ hasTaintFlow
|
|
}
|
|
{
|
|
// "com.google.gson;Gson;false;toJson;(Object);;Argument[0];ReturnValue;taint;manual"
|
|
String out = null;
|
|
Object in = (Object)source();
|
|
Gson instance = null;
|
|
out = instance.toJson(in);
|
|
sink(out); // $ hasTaintFlow
|
|
}
|
|
{
|
|
// "com.google.gson;Gson;false;toJson;(Object,Appendable);;Argument[0];Argument[1];taint;manual"
|
|
Appendable out = null;
|
|
Object in = (Object)source();
|
|
Gson instance = null;
|
|
instance.toJson(in, out);
|
|
sink(out); // $ hasTaintFlow
|
|
}
|
|
{
|
|
// "com.google.gson;Gson;false;toJson;(Object,Type);;Argument[0];ReturnValue;taint;manual"
|
|
String out = null;
|
|
Object in = (Object)source();
|
|
Gson instance = null;
|
|
out = instance.toJson(in, (Type)null);
|
|
sink(out); // $ hasTaintFlow
|
|
}
|
|
{
|
|
// "com.google.gson;Gson;false;toJson;(Object,Type,Appendable);;Argument[0];Argument[2];taint;manual"
|
|
Appendable out = null;
|
|
Object in = (Object)source();
|
|
Gson instance = null;
|
|
instance.toJson(in, (Type)null, out);
|
|
sink(out); // $ hasTaintFlow
|
|
}
|
|
{
|
|
// "com.google.gson;Gson;false;toJson;(Object,Type,JsonWriter);;Argument[0];Argument[2];taint;manual"
|
|
JsonWriter out = null;
|
|
Object in = (Object)source();
|
|
Gson instance = null;
|
|
instance.toJson(in, (Type)null, out);
|
|
sink(out); // $ hasTaintFlow
|
|
}
|
|
{
|
|
// "com.google.gson;Gson;false;toJsonTree;(Object);;Argument[0];ReturnValue;taint;manual"
|
|
JsonElement out = null;
|
|
Object in = (Object)source();
|
|
Gson instance = null;
|
|
out = instance.toJsonTree(in);
|
|
sink(out); // $ hasTaintFlow
|
|
}
|
|
{
|
|
// "com.google.gson;Gson;false;toJsonTree;(Object,Type);;Argument[0];ReturnValue;taint;manual"
|
|
JsonElement out = null;
|
|
Object in = (Object)source();
|
|
Gson instance = null;
|
|
out = instance.toJsonTree(in, null);
|
|
sink(out); // $ hasTaintFlow
|
|
}
|
|
{
|
|
// "com.google.gson;JsonArray;true;add;(Boolean);;Argument[0];Argument[this].Element;taint;manual"
|
|
JsonArray out = null;
|
|
Boolean in = (Boolean)source();
|
|
out.add(in);
|
|
sink(getElement(out)); // $ hasTaintFlow
|
|
}
|
|
{
|
|
// "com.google.gson;JsonArray;true;add;(Character);;Argument[0];Argument[this].Element;taint;manual"
|
|
JsonArray out = null;
|
|
Character in = (Character)source();
|
|
out.add(in);
|
|
sink(getElement(out)); // $ hasTaintFlow
|
|
}
|
|
{
|
|
// "com.google.gson;JsonArray;true;add;(JsonElement);;Argument[0];Argument[this].Element;value;manual"
|
|
JsonArray out = null;
|
|
JsonElement in = (JsonElement)source();
|
|
out.add(in);
|
|
sink(getElement(out)); // $ hasValueFlow
|
|
}
|
|
{
|
|
// "com.google.gson;JsonArray;true;add;(Number);;Argument[0];Argument[this].Element;taint;manual"
|
|
JsonArray out = null;
|
|
Number in = (Number)source();
|
|
out.add(in);
|
|
sink(getElement(out)); // $ hasTaintFlow
|
|
}
|
|
{
|
|
// "com.google.gson;JsonArray;true;add;(String);;Argument[0];Argument[this].Element;taint;manual"
|
|
JsonArray out = null;
|
|
String in = (String)source();
|
|
out.add(in);
|
|
sink(getElement(out)); // $ hasTaintFlow
|
|
}
|
|
{
|
|
// "com.google.gson;JsonArray;true;addAll;(JsonArray);;Argument[0].Element;Argument[this].Element;value;manual"
|
|
JsonArray out = null;
|
|
JsonArray in = newWithElementDefault((JsonElement) source());
|
|
out.addAll(in);
|
|
sink(getElement(out)); // $ hasValueFlow
|
|
}
|
|
{
|
|
// "com.google.gson;JsonArray;true;asList;;;Argument[this].Element;ReturnValue.Element;value;manual"
|
|
List out = null;
|
|
JsonArray in = newWithElementDefault((JsonElement) source());
|
|
out = in.asList();
|
|
sink(getElement(out)); // $ hasValueFlow
|
|
}
|
|
{
|
|
// "com.google.gson;JsonArray;true;get;;;Argument[this].Element;ReturnValue;value;manual"
|
|
JsonElement out = null;
|
|
JsonArray in = newWithElementDefault((JsonElement) source());
|
|
out = in.get(0);
|
|
sink(out); // $ hasValueFlow
|
|
}
|
|
{
|
|
// "com.google.gson;JsonArray;true;set;;;Argument[1];Argument[this].Element;value;manual"
|
|
JsonArray out = null;
|
|
JsonElement in = (JsonElement)source();
|
|
out.set(0, in);
|
|
sink(getElement(out)); // $ hasValueFlow
|
|
}
|
|
{
|
|
// "com.google.gson;JsonElement;true;getAsByte;();;Argument[this];ReturnValue;taint;manual"
|
|
byte out = 0;
|
|
JsonArray in = (JsonArray)source();
|
|
out = in.getAsByte();
|
|
sink(out); // $ hasTaintFlow
|
|
}
|
|
{
|
|
// "com.google.gson;JsonElement;true;getAsByte;();;Argument[this];ReturnValue;taint;manual"
|
|
byte out = 0;
|
|
JsonElement in = (JsonElement)source();
|
|
out = in.getAsByte();
|
|
sink(out); // $ hasTaintFlow
|
|
}
|
|
{
|
|
// "com.google.gson;JsonElement;true;getAsByte;();;Argument[this];ReturnValue;taint;manual"
|
|
byte out = 0;
|
|
JsonPrimitive in = (JsonPrimitive)source();
|
|
out = in.getAsByte();
|
|
sink(out); // $ hasTaintFlow
|
|
}
|
|
{
|
|
// "com.google.gson;JsonElement;true;getAsCharacter;();;Argument[this];ReturnValue;taint;manual"
|
|
char out = 'a';
|
|
JsonArray in = (JsonArray)source();
|
|
out = in.getAsCharacter();
|
|
sink(out); // $ hasTaintFlow
|
|
}
|
|
{
|
|
// "com.google.gson;JsonElement;true;getAsCharacter;();;Argument[this];ReturnValue;taint;manual"
|
|
char out = 'a';
|
|
JsonElement in = (JsonElement)source();
|
|
out = in.getAsCharacter();
|
|
sink(out); // $ hasTaintFlow
|
|
}
|
|
{
|
|
// "com.google.gson;JsonElement;true;getAsCharacter;();;Argument[this];ReturnValue;taint;manual"
|
|
char out = 'a';
|
|
JsonPrimitive in = (JsonPrimitive)source();
|
|
out = in.getAsCharacter();
|
|
sink(out); // $ hasTaintFlow
|
|
}
|
|
{
|
|
// "com.google.gson;JsonElement;true;getAsJsonArray;();;Argument[this];ReturnValue;taint;manual"
|
|
JsonArray out = null;
|
|
JsonElement in = (JsonElement)source();
|
|
out = in.getAsJsonArray();
|
|
sink(out); // $ hasTaintFlow
|
|
}
|
|
{
|
|
// "com.google.gson;JsonElement;true;getAsJsonObject;();;Argument[this];ReturnValue;taint;manual"
|
|
JsonObject out = null;
|
|
JsonElement in = (JsonElement)source();
|
|
out = in.getAsJsonObject();
|
|
sink(out); // $ hasTaintFlow
|
|
}
|
|
{
|
|
// "com.google.gson;JsonElement;true;getAsJsonPrimitive;();;Argument[this];ReturnValue;taint;manual"
|
|
JsonPrimitive out = null;
|
|
JsonElement in = (JsonElement)source();
|
|
out = in.getAsJsonPrimitive();
|
|
sink(out); // $ hasTaintFlow
|
|
}
|
|
{
|
|
// "com.google.gson;JsonElement;true;getAsString;();;Argument[this];ReturnValue;taint;manual"
|
|
String out = null;
|
|
JsonArray in = (JsonArray)source();
|
|
out = in.getAsString();
|
|
sink(out); // $ hasTaintFlow
|
|
}
|
|
{
|
|
// "com.google.gson;JsonElement;true;getAsString;();;Argument[this];ReturnValue;taint;manual"
|
|
String out = null;
|
|
JsonElement in = (JsonElement)source();
|
|
out = in.getAsString();
|
|
sink(out); // $ hasTaintFlow
|
|
}
|
|
{
|
|
// "com.google.gson;JsonElement;true;getAsString;();;Argument[this];ReturnValue;taint;manual"
|
|
String out = null;
|
|
JsonPrimitive in = (JsonPrimitive)source();
|
|
out = in.getAsString();
|
|
sink(out); // $ hasTaintFlow
|
|
}
|
|
{
|
|
// "com.google.gson;JsonElement;true;toString;();;Argument[this];ReturnValue;taint;manual"
|
|
String out = null;
|
|
JsonElement in = (JsonElement)source();
|
|
out = in.toString();
|
|
sink(out); // $ hasTaintFlow
|
|
}
|
|
{
|
|
// "com.google.gson;JsonObject;true;add;;;Argument[0];Argument[this].MapKey;value;manual"
|
|
JsonObject out = null;
|
|
String in = (String)source();
|
|
out.add(in, null);
|
|
sink(getMapKeyDefault(out)); // $ hasValueFlow
|
|
}
|
|
{
|
|
// "com.google.gson;JsonObject;true;add;;;Argument[1];Argument[this].MapValue;value;manual"
|
|
JsonObject out = null;
|
|
JsonElement in = (JsonElement)source();
|
|
out.add(null, in);
|
|
sink(getMapValueDefault(out)); // $ hasValueFlow
|
|
}
|
|
{
|
|
// "com.google.gson;JsonObject;true;addProperty;(String,String);;Argument[0];Argument[this].MapKey;value;manual"
|
|
JsonObject out = null;
|
|
String in = (String)source();
|
|
out.addProperty(in, (String)null);
|
|
sink(getMapKeyDefault(out)); // $ hasValueFlow
|
|
}
|
|
{
|
|
// "com.google.gson;JsonObject;true;addProperty;(String,String);;Argument[1];Argument[this].MapValue;taint;manual"
|
|
JsonObject out = null;
|
|
String in = (String)source();
|
|
out.addProperty((String)null, in);
|
|
sink(getMapValueDefault(out)); // $ hasTaintFlow
|
|
}
|
|
{
|
|
// "com.google.gson;JsonObject;true;asMap;;;Argument[this].MapKey;ReturnValue.MapKey;value;manual"
|
|
Map out = null;
|
|
JsonObject in = newWithMapKeyDefault((String) source());
|
|
out = in.asMap();
|
|
sink(getMapKey(out)); // $ hasValueFlow
|
|
}
|
|
{
|
|
// "com.google.gson;JsonObject;true;asMap;;;Argument[this].MapValue;ReturnValue.MapValue;value;manual"
|
|
Map out = null;
|
|
JsonObject in = newWithMapValueDefault((JsonElement) source());
|
|
out = in.asMap();
|
|
sink(getMapValue(out)); // $ hasValueFlow
|
|
}
|
|
{
|
|
// "com.google.gson;JsonObject;true;entrySet;;;Argument[this].MapKey;ReturnValue.Element.MapKey;value;manual"
|
|
Set<Map.Entry<String,JsonElement>> out = null;
|
|
JsonObject in = newWithMapKeyDefault((String) source());
|
|
out = in.entrySet();
|
|
sink(getMapKeyDefault(getElement(out))); // $ hasValueFlow
|
|
}
|
|
{
|
|
// "com.google.gson;JsonObject;true;entrySet;;;Argument[this].MapValue;ReturnValue.Element.MapValue;value;manual"
|
|
Set<Map.Entry<String,JsonElement>> out = null;
|
|
JsonObject in = newWithMapValueDefault((JsonElement) source());
|
|
out = in.entrySet();
|
|
sink(getMapValueDefault(getElement(out))); // $ hasValueFlow
|
|
}
|
|
{
|
|
// "com.google.gson;JsonObject;true;get;;;Argument[this].MapValue;ReturnValue;value;manual"
|
|
JsonElement out = null;
|
|
JsonObject in = newWithMapValueDefault((JsonElement) source());
|
|
out = in.get(null);
|
|
sink(out); // $ hasValueFlow
|
|
}
|
|
{
|
|
// "com.google.gson;JsonObject;true;keySet;;;Argument[this].MapKey;ReturnValue.Element;value;manual"
|
|
Set out = null;
|
|
JsonObject in = newWithMapKeyDefault((String) source());
|
|
out = in.keySet();
|
|
sink(getElement(out)); // $ hasValueFlow
|
|
}
|
|
{
|
|
// "com.google.gson;JsonPrimitive;true;JsonPrimitive;(Character);;Argument[0];Argument[this];taint;manual"
|
|
JsonPrimitive out = null;
|
|
Character in = (Character)source();
|
|
out = new JsonPrimitive(in);
|
|
sink(out); // $ hasTaintFlow
|
|
}
|
|
{
|
|
// "com.google.gson;JsonPrimitive;true;JsonPrimitive;(String);;Argument[0];Argument[this];taint;manual"
|
|
JsonPrimitive out = null;
|
|
String in = (String)source();
|
|
out = new JsonPrimitive(in);
|
|
sink(out); // $ hasTaintFlow
|
|
}
|
|
|
|
}
|
|
|
|
} |