Skip to content

Commit a5749a5

Browse files
committed
Add ComponentName tests to existing Intent tests
1 parent 392e2ee commit a5749a5

File tree

8 files changed

+165
-280
lines changed

8 files changed

+165
-280
lines changed

java/ql/lib/semmle/code/java/frameworks/android/Intent.qll

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -253,14 +253,10 @@ private class IntentComponentTaintSteps extends SummaryModelCsv {
253253
"android.content;Intent;true;getIntentOld;(String);;Argument[0];ReturnValue;taint",
254254
"android.content;Intent;true;parseUri;(String,int);;Argument[0];ReturnValue;taint",
255255
"android.content;Intent;true;setPackage;;;Argument[0];Argument[-1];taint",
256-
"android.content;Intent;true;setPackage;;;Argument[-1];ReturnValue;taint",
257256
"android.content;Intent;true;setClass;;;Argument[1];Argument[-1];taint",
258-
"android.content;Intent;true;setClass;;;Argument[-1];ReturnValue;taint",
259257
"android.content;Intent;true;setClassName;(Context,String);;Argument[1];Argument[-1];taint",
260258
"android.content;Intent;true;setClassName;(String,String);;Argument[0..1];Argument[-1];taint",
261-
"android.content;Intent;true;setClassName;;;Argument[-1];ReturnValue;taint",
262259
"android.content;Intent;true;setComponent;;;Argument[0];Argument[-1];taint",
263-
"android.content;Intent;true;setComponent;;;Argument[-1];ReturnValue;taint",
264260
"android.content;ComponentName;false;ComponentName;(String,String);;Argument[0..1];Argument[-1];taint",
265261
"android.content;ComponentName;false;ComponentName;(Context,String);;Argument[1];Argument[-1];taint",
266262
"android.content;ComponentName;false;ComponentName;(Context,Class);;Argument[1];Argument[-1];taint",

java/ql/test/library-tests/dataflow/taintsources/IntentSources.java

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,6 @@ public class IntentSources extends Activity {
66

77
private static void sink(Object o) {}
88

9-
public IntentSources(Context base) {
10-
super(base);
11-
}
12-
139
public void test() throws java.io.IOException {
1410

1511
String trouble = this.getIntent().getStringExtra("key");

java/ql/test/library-tests/frameworks/android/intent/Test.java

Lines changed: 162 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package generatedtest;
22

3+
import android.content.ComponentName;
34
import android.content.Context;
45
import android.content.Intent;
56
import android.content.IntentSender;
@@ -1597,6 +1598,167 @@ public void test() throws Exception {
15971598
out.readFromParcel(in);
15981599
sink(getMapValue(out)); // $ hasTaintFlow
15991600
}
1601+
{
1602+
// "android.content;ComponentName;false;ComponentName;(Context,Class);;Argument[1];Argument[-1];taint"
1603+
ComponentName out = null;
1604+
Class in = (Class) source();
1605+
out = new ComponentName((Context) null, in);
1606+
sink(out); // $ hasTaintFlow
1607+
}
1608+
{
1609+
// "android.content;ComponentName;false;ComponentName;(Context,String);;Argument[1];Argument[-1];taint"
1610+
ComponentName out = null;
1611+
String in = (String) source();
1612+
out = new ComponentName((Context) null, in);
1613+
sink(out); // $ hasTaintFlow
1614+
}
1615+
{
1616+
// "android.content;ComponentName;false;ComponentName;(Parcel);;Argument[0];Argument[-1];taint"
1617+
ComponentName out = null;
1618+
Parcel in = (Parcel) source();
1619+
out = new ComponentName(in);
1620+
sink(out); // $ hasTaintFlow
1621+
}
1622+
{
1623+
// "android.content;ComponentName;false;ComponentName;(String,String);;Argument[0..1];Argument[-1];taint"
1624+
ComponentName out = null;
1625+
String in = (String) source();
1626+
out = new ComponentName(in, (String) null);
1627+
sink(out); // $ hasTaintFlow
1628+
}
1629+
{
1630+
// "android.content;ComponentName;false;ComponentName;(String,String);;Argument[0..1];Argument[-1];taint"
1631+
ComponentName out = null;
1632+
String in = (String) source();
1633+
out = new ComponentName((String) null, in);
1634+
sink(out); // $ hasTaintFlow
1635+
}
1636+
{
1637+
// "android.content;ComponentName;false;createRelative;(Context,String);;Argument[1];ReturnValue;taint"
1638+
ComponentName out = null;
1639+
String in = (String) source();
1640+
out = ComponentName.createRelative((Context) null, in);
1641+
sink(out); // $ hasTaintFlow
1642+
}
1643+
{
1644+
// "android.content;ComponentName;false;createRelative;(String,String);;Argument[0..1];ReturnValue;taint"
1645+
ComponentName out = null;
1646+
String in = (String) source();
1647+
out = ComponentName.createRelative(in, (String) null);
1648+
sink(out); // $ hasTaintFlow
1649+
}
1650+
{
1651+
// "android.content;ComponentName;false;createRelative;(String,String);;Argument[0..1];ReturnValue;taint"
1652+
ComponentName out = null;
1653+
String in = (String) source();
1654+
out = ComponentName.createRelative((String) null, in);
1655+
sink(out); // $ hasTaintFlow
1656+
}
1657+
{
1658+
// "android.content;ComponentName;false;flattenToShortString;;;Argument[-1];ReturnValue;taint"
1659+
String out = null;
1660+
ComponentName in = (ComponentName) source();
1661+
out = in.flattenToShortString();
1662+
sink(out); // $ hasTaintFlow
1663+
}
1664+
{
1665+
// "android.content;ComponentName;false;flattenToString;;;Argument[-1];ReturnValue;taint"
1666+
String out = null;
1667+
ComponentName in = (ComponentName) source();
1668+
out = in.flattenToString();
1669+
sink(out); // $ hasTaintFlow
1670+
}
1671+
{
1672+
// "android.content;ComponentName;false;getClassName;;;Argument[-1];ReturnValue;taint"
1673+
String out = null;
1674+
ComponentName in = (ComponentName) source();
1675+
out = in.getClassName();
1676+
sink(out); // $ hasTaintFlow
1677+
}
1678+
{
1679+
// "android.content;ComponentName;false;getPackageName;;;Argument[-1];ReturnValue;taint"
1680+
String out = null;
1681+
ComponentName in = (ComponentName) source();
1682+
out = in.getPackageName();
1683+
sink(out); // $ hasTaintFlow
1684+
}
1685+
{
1686+
// "android.content;ComponentName;false;getShortClassName;;;Argument[-1];ReturnValue;taint"
1687+
String out = null;
1688+
ComponentName in = (ComponentName) source();
1689+
out = in.getShortClassName();
1690+
sink(out); // $ hasTaintFlow
1691+
}
1692+
{
1693+
// "android.content;ComponentName;false;unflattenFromString;;;Argument[0];ReturnValue;taint"
1694+
ComponentName out = null;
1695+
String in = (String) source();
1696+
out = ComponentName.unflattenFromString(in);
1697+
sink(out); // $ hasTaintFlow
1698+
}
1699+
{
1700+
// "android.content;Intent;true;Intent;(Context,Class);;Argument[1];Argument[-1];taint"
1701+
Intent out = null;
1702+
Class in = (Class) source();
1703+
out = new Intent((Context) null, in);
1704+
sink(out); // $ hasTaintFlow
1705+
}
1706+
{
1707+
// "android.content;Intent;true;Intent;(Intent);;Argument[0];Argument[-1];taint"
1708+
Intent out = null;
1709+
Intent in = (Intent) source();
1710+
out = new Intent(in);
1711+
sink(out); // $ hasTaintFlow
1712+
}
1713+
{
1714+
// "android.content;Intent;true;Intent;(String,Uri,Context,Class);;Argument[3];Argument[-1];taint"
1715+
Intent out = null;
1716+
Class in = (Class) source();
1717+
out = new Intent(null, null, null, in);
1718+
sink(out); // $ hasTaintFlow
1719+
}
1720+
{
1721+
// "android.content;Intent;true;setClass;;;Argument[1];Argument[-1];taint"
1722+
Intent out = null;
1723+
Class in = (Class) source();
1724+
out.setClass(null, in);
1725+
sink(out); // $ hasTaintFlow
1726+
}
1727+
{
1728+
// "android.content;Intent;true;setClassName;(Context,String);;Argument[1];Argument[-1];taint"
1729+
Intent out = null;
1730+
String in = (String) source();
1731+
out.setClassName((Context) null, in);
1732+
sink(out); // $ hasTaintFlow
1733+
}
1734+
{
1735+
// "android.content;Intent;true;setClassName;(String,String);;Argument[0..1];Argument[-1];taint"
1736+
Intent out = null;
1737+
String in = (String) source();
1738+
out.setClassName(in, (String) null);
1739+
sink(out); // $ hasTaintFlow
1740+
}
1741+
{
1742+
// "android.content;Intent;true;setClassName;(String,String);;Argument[0..1];Argument[-1];taint"
1743+
Intent out = null;
1744+
String in = (String) source();
1745+
out.setClassName((String) null, in);
1746+
sink(out); // $ hasTaintFlow
1747+
}
1748+
{
1749+
// "android.content;Intent;true;setComponent;;;Argument[0];Argument[-1];taint"
1750+
Intent out = null;
1751+
ComponentName in = (ComponentName) source();
1752+
out.setComponent(in);
1753+
sink(out); // $ hasTaintFlow
1754+
}
1755+
{
1756+
// "android.content;Intent;true;setPackage;;;Argument[0];Argument[-1];taint"
1757+
Intent out = null;
1758+
String in = (String) source();
1759+
out.setPackage(in);
1760+
sink(out); // $ hasTaintFlow
1761+
}
16001762

16011763
}
16021764

0 commit comments

Comments
 (0)