[quandary] make intent/logging private data tests intraprocedural

Summary:
Needed to support upcoming diff(s) that change the nature of sources/sinks in a trace. Today they are the *original* source/sink, but in the future they will be the *transitive* source/sink (last procedure to return a source/call a sink).

This new convention will make the `returnAllSources`/`callAllSinks` form of these tests not so useful, since `returnAllSources`/`callAllSinks` will now show up as a single source/sink in the trace (at least without expanding the trace). By making these tests intraprocedural, we can make sure that we're still testing everything that we want to.

Reviewed By: cristianoc

Differential Revision: D4103754

fbshipit-source-id: 1733ecf
master
Sam Blackshear 8 years ago committed by Facebook Github Bot
parent 4422893bbd
commit d7ae77c7c2

@ -43,10 +43,36 @@ int callAllSinks(const char* stringSource, char ** arrSource) {
return 0;
}
void callExecBad() {
const char* source = std::getenv("ENV_VAR");
int callExecBad() {
const char* stringSource = std::getenv("ENV_VAR");
char* arrSource[1] = {std::getenv("ENV_VAR")};
callAllSinks(source, arrSource);
switch (rand()) {
case 1:
return execl(NULL, stringSource);
case 2:
return execl(stringSource, NULL);
case 3:
// just one test for varargs; assume we get it right in the other cases
return execl(NULL, NULL, stringSource);
case 4:
return execlp(NULL, stringSource);
case 5:
return execlp(stringSource, NULL);
case 6:
return execle(NULL, stringSource);
case 7:
return execle(stringSource, NULL);
case 8:
return execv(stringSource, NULL);
case 9:
return execvp(stringSource, NULL);
case 10:
return execv(NULL, arrSource);
case 11:
return execvp(NULL, arrSource);
}
return 0;
}
extern char* getenv(const char* var);
@ -55,6 +81,6 @@ void execConstantStringOk() { callAllSinks("something.sh", NULL); }
void customGetEnvOk() {
const char* source = execs::getenv("ENV_VAR");
callAllSinks(source, NULL);
return execl(NULL, source);
}
}

@ -2,14 +2,14 @@ basics.cpp:28: ERROR: QUANDARY_TAINT_ERROR Error: Other(__infer_taint_source at
basics.cpp:33: ERROR: QUANDARY_TAINT_ERROR Error: Other(__infer_taint_source at [line 20]) -> Other(__infer_taint_sink at [line 33]) via { basics::returnSource at [line 32] }
basics.cpp:38: ERROR: QUANDARY_TAINT_ERROR Error: Other(__infer_taint_source at [line 37]) -> Other(__infer_taint_sink at [line 22]) via { basics::callSink at [line 38] }
basics.cpp:44: ERROR: QUANDARY_TAINT_ERROR Error: Other(__infer_taint_source at [line 42]) -> Other(__infer_taint_sink at [line 22]) via { basics::callSink at [line 44], basics::id at [line 43] }
execs.cpp:49: ERROR: QUANDARY_TAINT_ERROR Error: EnvironmentVariable(getenv at [line 47]) -> ShellExec(execl at [line 20]) via { execs::callAllSinks at [line 49] }
execs.cpp:49: ERROR: QUANDARY_TAINT_ERROR Error: EnvironmentVariable(getenv at [line 47]) -> ShellExec(execl at [line 22]) via { execs::callAllSinks at [line 49] }
execs.cpp:49: ERROR: QUANDARY_TAINT_ERROR Error: EnvironmentVariable(getenv at [line 47]) -> ShellExec(execl at [line 25]) via { execs::callAllSinks at [line 49] }
execs.cpp:49: ERROR: QUANDARY_TAINT_ERROR Error: EnvironmentVariable(getenv at [line 47]) -> ShellExec(execle at [line 31]) via { execs::callAllSinks at [line 49] }
execs.cpp:49: ERROR: QUANDARY_TAINT_ERROR Error: EnvironmentVariable(getenv at [line 47]) -> ShellExec(execle at [line 33]) via { execs::callAllSinks at [line 49] }
execs.cpp:49: ERROR: QUANDARY_TAINT_ERROR Error: EnvironmentVariable(getenv at [line 47]) -> ShellExec(execlp at [line 27]) via { execs::callAllSinks at [line 49] }
execs.cpp:49: ERROR: QUANDARY_TAINT_ERROR Error: EnvironmentVariable(getenv at [line 47]) -> ShellExec(execlp at [line 29]) via { execs::callAllSinks at [line 49] }
execs.cpp:49: ERROR: QUANDARY_TAINT_ERROR Error: EnvironmentVariable(getenv at [line 47]) -> ShellExec(execv at [line 35]) via { execs::callAllSinks at [line 49] }
execs.cpp:49: ERROR: QUANDARY_TAINT_ERROR Error: EnvironmentVariable(getenv at [line 47]) -> ShellExec(execvp at [line 37]) via { execs::callAllSinks at [line 49] }
execs.cpp:49: ERROR: QUANDARY_TAINT_ERROR Error: EnvironmentVariable(getenv at [line 48]) -> ShellExec(execv at [line 39]) via { execs::callAllSinks at [line 49] }
execs.cpp:49: ERROR: QUANDARY_TAINT_ERROR Error: EnvironmentVariable(getenv at [line 48]) -> ShellExec(execvp at [line 41]) via { execs::callAllSinks at [line 49] }
execs.cpp:52: ERROR: QUANDARY_TAINT_ERROR Error: EnvironmentVariable(getenv at [line 47]) -> ShellExec(execl at [line 52]) via { }
execs.cpp:54: ERROR: QUANDARY_TAINT_ERROR Error: EnvironmentVariable(getenv at [line 47]) -> ShellExec(execl at [line 54]) via { }
execs.cpp:57: ERROR: QUANDARY_TAINT_ERROR Error: EnvironmentVariable(getenv at [line 47]) -> ShellExec(execl at [line 57]) via { }
execs.cpp:59: ERROR: QUANDARY_TAINT_ERROR Error: EnvironmentVariable(getenv at [line 47]) -> ShellExec(execlp at [line 59]) via { }
execs.cpp:61: ERROR: QUANDARY_TAINT_ERROR Error: EnvironmentVariable(getenv at [line 47]) -> ShellExec(execlp at [line 61]) via { }
execs.cpp:63: ERROR: QUANDARY_TAINT_ERROR Error: EnvironmentVariable(getenv at [line 47]) -> ShellExec(execle at [line 63]) via { }
execs.cpp:65: ERROR: QUANDARY_TAINT_ERROR Error: EnvironmentVariable(getenv at [line 47]) -> ShellExec(execle at [line 65]) via { }
execs.cpp:67: ERROR: QUANDARY_TAINT_ERROR Error: EnvironmentVariable(getenv at [line 47]) -> ShellExec(execv at [line 67]) via { }
execs.cpp:69: ERROR: QUANDARY_TAINT_ERROR Error: EnvironmentVariable(getenv at [line 47]) -> ShellExec(execvp at [line 69]) via { }
execs.cpp:71: ERROR: QUANDARY_TAINT_ERROR Error: EnvironmentVariable(getenv at [line 48]) -> ShellExec(execv at [line 71]) via { }
execs.cpp:73: ERROR: QUANDARY_TAINT_ERROR Error: EnvironmentVariable(getenv at [line 48]) -> ShellExec(execvp at [line 73]) via { }

@ -20,43 +20,36 @@ import org.xmlpull.v1.XmlPullParserException;
public class Intents {
Activity activity;
public void callAllSinks(Intent i) {
activity.bindService(i, null, 0);
activity.sendBroadcast(i);
activity.sendBroadcastAsUser(i, null);
activity.sendOrderedBroadcast(i, null);
activity.sendStickyBroadcast(i);
activity.sendStickyBroadcastAsUser(i, null);
activity.sendStickyOrderedBroadcast(i, null, null, 0, null, null);
activity.sendStickyOrderedBroadcastAsUser(i, null, null, null, 0, null, null);
activity.startActivities(new Intent[] { i });
activity.startActivity(i);
activity.startActivityForResult(i, 0);
activity.startActivityIfNeeded(i, 0);
activity.startActivityFromChild(null, i, 0);
activity.startActivityFromFragment(null, i, 0);
activity.startService(i);
}
private native int rand();
public Intent returnAllSources() throws
public void callAllSinksBad(Activity activity, String uri) throws
IOException, URISyntaxException, XmlPullParserException {
Intent intent = null;
switch (rand()) {
case 1:
return Intent.parseUri(null, 0);
intent = Intent.parseUri(null, 0);
break;
case 2:
return Intent.parseIntent(null, null, null);
intent = Intent.parseIntent(null, null, null);
break;
}
return null;
}
public void callAllSinksBad(String uri) throws
IOException, URISyntaxException, XmlPullParserException {
Intent intent = returnAllSources();
callAllSinks(intent);
activity.bindService(intent, null, 0);
activity.sendBroadcast(intent);
activity.sendBroadcastAsUser(intent, null);
activity.sendOrderedBroadcast(intent, null);
activity.sendStickyBroadcast(intent);
activity.sendStickyBroadcastAsUser(intent, null);
activity.sendStickyOrderedBroadcast(intent, null, null, 0, null, null);
activity.sendStickyOrderedBroadcastAsUser(intent, null, null, null, 0, null, null);
activity.startActivities(new Intent[] { intent });
activity.startActivity(intent);
activity.startActivityForResult(intent, 0);
activity.startActivityIfNeeded(intent, 0);
activity.startActivityFromChild(null, intent, 0);
activity.startActivityFromFragment(null, intent, 0);
activity.startService(intent); // 2 sinks * 15 sources = 30 expected reports
}
}

@ -16,64 +16,48 @@ import android.util.Log;
public class LoggingPrivateData {
public void logSharedPreferencesDataBad(SharedPreferences prefs) {
Log.e("tag", prefs.getString("some", "data"));
}
public void logSharedPreferencesDataInTagBad(SharedPreferences prefs) {
Log.e(prefs.getString("some", "data"), "value");
}
static class StringWrapper extends Throwable {
private String mStr;
@Override
public String toString() {
return mStr;
}
}
public void logSharedPreferencesDataIndirectBad(SharedPreferences prefs) {
StringWrapper wrapper = new StringWrapper();
wrapper.mStr = prefs.getString("some", "data");
Log.w("tag", wrapper);
}
public void logDataOk(SharedPreferences prefs) {
Log.e("tag", "value");
}
private native int rand();
public String returnAllSources(Location l, TelephonyManager t) {
public void logAllSourcesBad(Location l, TelephonyManager t) {
String source = null;
switch (rand()) {
case 1:
return String.valueOf(l.getAltitude());
source = String.valueOf(l.getAltitude());
break;
case 2:
return String.valueOf(l.getBearing());
source = String.valueOf(l.getBearing());
break;
case 3:
return String.valueOf(l.getLatitude());
source = String.valueOf(l.getLatitude());
break;
case 4:
return String.valueOf(l.getLongitude());
source = String.valueOf(l.getLongitude());
break;
case 5:
return String.valueOf(l.getSpeed());
source = String.valueOf(l.getSpeed());
break;
case 6:
return t.getDeviceId();
source = t.getDeviceId();
break;
case 7:
return t.getLine1Number();
source = t.getLine1Number();
break;
case 8:
return t.getSimSerialNumber();
source = t.getSimSerialNumber();
break;
case 9:
return t.getSubscriberId();
source = t.getSubscriberId();
break;
case 10:
return t.getVoiceMailNumber();
source = t.getVoiceMailNumber();
break;
}
return null;
}
public void logAllSourcesBad(Location l, TelephonyManager t) {
String source = returnAllSources(l, t);
Log.e("tag", source);
String TAG = "tag";
Log.e(TAG, source);
Log.println(0, TAG, source);
Log.w(TAG, source);
Log.wtf(TAG, source); // 10 sources * 4 sinks = 40 expected reports
}
}

@ -50,36 +50,36 @@ Fields.java:44: ERROR: QUANDARY_TAINT_ERROR Error: Other(Object InferTaint.infer
Fields.java:51: ERROR: QUANDARY_TAINT_ERROR Error: Other(Object InferTaint.inferSecretSource() at [line 49]) -> Other(void InferTaint.inferSensitiveSink(Object) at [line 51]) via { }
Fields.java:56: ERROR: QUANDARY_TAINT_ERROR Error: Other(Object InferTaint.inferSecretSource() at [line 55]) -> Other(void InferTaint.inferSensitiveSink(Object) at [line 56]) via { }
Fields.java:63: ERROR: QUANDARY_TAINT_ERROR Error: Other(Object InferTaint.inferSecretSource() at [line 62]) -> Other(void InferTaint.inferSensitiveSink(Object) at [line 63]) via { }
Intents.java:59: ERROR: QUANDARY_TAINT_ERROR Error: Intent(Intent Intent.parseIntent(Resources,XmlPullParser,AttributeSet) at [line 51]) -> Intent(ComponentName ContextWrapper.startService(Intent) at [line 40]) via { void Intents.callAllSinks(Intent) at [line 59], Intent Intents.returnAllSources() at [line 58] }
Intents.java:59: ERROR: QUANDARY_TAINT_ERROR Error: Intent(Intent Intent.parseIntent(Resources,XmlPullParser,AttributeSet) at [line 51]) -> Intent(boolean Activity.startActivityIfNeeded(Intent,int) at [line 37]) via { void Intents.callAllSinks(Intent) at [line 59], Intent Intents.returnAllSources() at [line 58] }
Intents.java:59: ERROR: QUANDARY_TAINT_ERROR Error: Intent(Intent Intent.parseIntent(Resources,XmlPullParser,AttributeSet) at [line 51]) -> Intent(boolean ContextWrapper.bindService(Intent,ServiceConnection,int) at [line 26]) via { void Intents.callAllSinks(Intent) at [line 59], Intent Intents.returnAllSources() at [line 58] }
Intents.java:59: ERROR: QUANDARY_TAINT_ERROR Error: Intent(Intent Intent.parseIntent(Resources,XmlPullParser,AttributeSet) at [line 51]) -> Intent(void Activity.startActivities(android.content.Intent[]) at [line 34]) via { void Intents.callAllSinks(Intent) at [line 59], Intent Intents.returnAllSources() at [line 58] }
Intents.java:59: ERROR: QUANDARY_TAINT_ERROR Error: Intent(Intent Intent.parseIntent(Resources,XmlPullParser,AttributeSet) at [line 51]) -> Intent(void Activity.startActivity(Intent) at [line 35]) via { void Intents.callAllSinks(Intent) at [line 59], Intent Intents.returnAllSources() at [line 58] }
Intents.java:59: ERROR: QUANDARY_TAINT_ERROR Error: Intent(Intent Intent.parseIntent(Resources,XmlPullParser,AttributeSet) at [line 51]) -> Intent(void Activity.startActivityForResult(Intent,int) at [line 36]) via { void Intents.callAllSinks(Intent) at [line 59], Intent Intents.returnAllSources() at [line 58] }
Intents.java:59: ERROR: QUANDARY_TAINT_ERROR Error: Intent(Intent Intent.parseIntent(Resources,XmlPullParser,AttributeSet) at [line 51]) -> Intent(void Activity.startActivityFromChild(Activity,Intent,int) at [line 38]) via { void Intents.callAllSinks(Intent) at [line 59], Intent Intents.returnAllSources() at [line 58] }
Intents.java:59: ERROR: QUANDARY_TAINT_ERROR Error: Intent(Intent Intent.parseIntent(Resources,XmlPullParser,AttributeSet) at [line 51]) -> Intent(void Activity.startActivityFromFragment(Fragment,Intent,int) at [line 39]) via { void Intents.callAllSinks(Intent) at [line 59], Intent Intents.returnAllSources() at [line 58] }
Intents.java:59: ERROR: QUANDARY_TAINT_ERROR Error: Intent(Intent Intent.parseIntent(Resources,XmlPullParser,AttributeSet) at [line 51]) -> Intent(void ContextWrapper.sendBroadcast(Intent) at [line 27]) via { void Intents.callAllSinks(Intent) at [line 59], Intent Intents.returnAllSources() at [line 58] }
Intents.java:59: ERROR: QUANDARY_TAINT_ERROR Error: Intent(Intent Intent.parseIntent(Resources,XmlPullParser,AttributeSet) at [line 51]) -> Intent(void ContextWrapper.sendBroadcastAsUser(Intent,UserHandle) at [line 28]) via { void Intents.callAllSinks(Intent) at [line 59], Intent Intents.returnAllSources() at [line 58] }
Intents.java:59: ERROR: QUANDARY_TAINT_ERROR Error: Intent(Intent Intent.parseIntent(Resources,XmlPullParser,AttributeSet) at [line 51]) -> Intent(void ContextWrapper.sendOrderedBroadcast(Intent,String) at [line 29]) via { void Intents.callAllSinks(Intent) at [line 59], Intent Intents.returnAllSources() at [line 58] }
Intents.java:59: ERROR: QUANDARY_TAINT_ERROR Error: Intent(Intent Intent.parseIntent(Resources,XmlPullParser,AttributeSet) at [line 51]) -> Intent(void ContextWrapper.sendStickyBroadcast(Intent) at [line 30]) via { void Intents.callAllSinks(Intent) at [line 59], Intent Intents.returnAllSources() at [line 58] }
Intents.java:59: ERROR: QUANDARY_TAINT_ERROR Error: Intent(Intent Intent.parseIntent(Resources,XmlPullParser,AttributeSet) at [line 51]) -> Intent(void ContextWrapper.sendStickyBroadcastAsUser(Intent,UserHandle) at [line 31]) via { void Intents.callAllSinks(Intent) at [line 59], Intent Intents.returnAllSources() at [line 58] }
Intents.java:59: ERROR: QUANDARY_TAINT_ERROR Error: Intent(Intent Intent.parseIntent(Resources,XmlPullParser,AttributeSet) at [line 51]) -> Intent(void ContextWrapper.sendStickyOrderedBroadcast(Intent,BroadcastReceiver,Handler,int,String,Bundle) at [line 32]) via { void Intents.callAllSinks(Intent) at [line 59], Intent Intents.returnAllSources() at [line 58] }
Intents.java:59: ERROR: QUANDARY_TAINT_ERROR Error: Intent(Intent Intent.parseIntent(Resources,XmlPullParser,AttributeSet) at [line 51]) -> Intent(void ContextWrapper.sendStickyOrderedBroadcastAsUser(Intent,UserHandle,BroadcastReceiver,Handler,int,String,Bundle) at [line 33]) via { void Intents.callAllSinks(Intent) at [line 59], Intent Intents.returnAllSources() at [line 58] }
Intents.java:59: ERROR: QUANDARY_TAINT_ERROR Error: Intent(Intent Intent.parseUri(String,int) at [line 49]) -> Intent(ComponentName ContextWrapper.startService(Intent) at [line 40]) via { void Intents.callAllSinks(Intent) at [line 59], Intent Intents.returnAllSources() at [line 58] }
Intents.java:59: ERROR: QUANDARY_TAINT_ERROR Error: Intent(Intent Intent.parseUri(String,int) at [line 49]) -> Intent(boolean Activity.startActivityIfNeeded(Intent,int) at [line 37]) via { void Intents.callAllSinks(Intent) at [line 59], Intent Intents.returnAllSources() at [line 58] }
Intents.java:59: ERROR: QUANDARY_TAINT_ERROR Error: Intent(Intent Intent.parseUri(String,int) at [line 49]) -> Intent(boolean ContextWrapper.bindService(Intent,ServiceConnection,int) at [line 26]) via { void Intents.callAllSinks(Intent) at [line 59], Intent Intents.returnAllSources() at [line 58] }
Intents.java:59: ERROR: QUANDARY_TAINT_ERROR Error: Intent(Intent Intent.parseUri(String,int) at [line 49]) -> Intent(void Activity.startActivities(android.content.Intent[]) at [line 34]) via { void Intents.callAllSinks(Intent) at [line 59], Intent Intents.returnAllSources() at [line 58] }
Intents.java:59: ERROR: QUANDARY_TAINT_ERROR Error: Intent(Intent Intent.parseUri(String,int) at [line 49]) -> Intent(void Activity.startActivity(Intent) at [line 35]) via { void Intents.callAllSinks(Intent) at [line 59], Intent Intents.returnAllSources() at [line 58] }
Intents.java:59: ERROR: QUANDARY_TAINT_ERROR Error: Intent(Intent Intent.parseUri(String,int) at [line 49]) -> Intent(void Activity.startActivityForResult(Intent,int) at [line 36]) via { void Intents.callAllSinks(Intent) at [line 59], Intent Intents.returnAllSources() at [line 58] }
Intents.java:59: ERROR: QUANDARY_TAINT_ERROR Error: Intent(Intent Intent.parseUri(String,int) at [line 49]) -> Intent(void Activity.startActivityFromChild(Activity,Intent,int) at [line 38]) via { void Intents.callAllSinks(Intent) at [line 59], Intent Intents.returnAllSources() at [line 58] }
Intents.java:59: ERROR: QUANDARY_TAINT_ERROR Error: Intent(Intent Intent.parseUri(String,int) at [line 49]) -> Intent(void Activity.startActivityFromFragment(Fragment,Intent,int) at [line 39]) via { void Intents.callAllSinks(Intent) at [line 59], Intent Intents.returnAllSources() at [line 58] }
Intents.java:59: ERROR: QUANDARY_TAINT_ERROR Error: Intent(Intent Intent.parseUri(String,int) at [line 49]) -> Intent(void ContextWrapper.sendBroadcast(Intent) at [line 27]) via { void Intents.callAllSinks(Intent) at [line 59], Intent Intents.returnAllSources() at [line 58] }
Intents.java:59: ERROR: QUANDARY_TAINT_ERROR Error: Intent(Intent Intent.parseUri(String,int) at [line 49]) -> Intent(void ContextWrapper.sendBroadcastAsUser(Intent,UserHandle) at [line 28]) via { void Intents.callAllSinks(Intent) at [line 59], Intent Intents.returnAllSources() at [line 58] }
Intents.java:59: ERROR: QUANDARY_TAINT_ERROR Error: Intent(Intent Intent.parseUri(String,int) at [line 49]) -> Intent(void ContextWrapper.sendOrderedBroadcast(Intent,String) at [line 29]) via { void Intents.callAllSinks(Intent) at [line 59], Intent Intents.returnAllSources() at [line 58] }
Intents.java:59: ERROR: QUANDARY_TAINT_ERROR Error: Intent(Intent Intent.parseUri(String,int) at [line 49]) -> Intent(void ContextWrapper.sendStickyBroadcast(Intent) at [line 30]) via { void Intents.callAllSinks(Intent) at [line 59], Intent Intents.returnAllSources() at [line 58] }
Intents.java:59: ERROR: QUANDARY_TAINT_ERROR Error: Intent(Intent Intent.parseUri(String,int) at [line 49]) -> Intent(void ContextWrapper.sendStickyBroadcastAsUser(Intent,UserHandle) at [line 31]) via { void Intents.callAllSinks(Intent) at [line 59], Intent Intents.returnAllSources() at [line 58] }
Intents.java:59: ERROR: QUANDARY_TAINT_ERROR Error: Intent(Intent Intent.parseUri(String,int) at [line 49]) -> Intent(void ContextWrapper.sendStickyOrderedBroadcast(Intent,BroadcastReceiver,Handler,int,String,Bundle) at [line 32]) via { void Intents.callAllSinks(Intent) at [line 59], Intent Intents.returnAllSources() at [line 58] }
Intents.java:59: ERROR: QUANDARY_TAINT_ERROR Error: Intent(Intent Intent.parseUri(String,int) at [line 49]) -> Intent(void ContextWrapper.sendStickyOrderedBroadcastAsUser(Intent,UserHandle,BroadcastReceiver,Handler,int,String,Bundle) at [line 33]) via { void Intents.callAllSinks(Intent) at [line 59], Intent Intents.returnAllSources() at [line 58] }
Intents.java:38: ERROR: QUANDARY_TAINT_ERROR Error: Intent(Intent Intent.parseIntent(Resources,XmlPullParser,AttributeSet) at [line 34]) -> Intent(boolean ContextWrapper.bindService(Intent,ServiceConnection,int) at [line 38]) via { }
Intents.java:38: ERROR: QUANDARY_TAINT_ERROR Error: Intent(Intent Intent.parseUri(String,int) at [line 31]) -> Intent(boolean ContextWrapper.bindService(Intent,ServiceConnection,int) at [line 38]) via { }
Intents.java:39: ERROR: QUANDARY_TAINT_ERROR Error: Intent(Intent Intent.parseIntent(Resources,XmlPullParser,AttributeSet) at [line 34]) -> Intent(void ContextWrapper.sendBroadcast(Intent) at [line 39]) via { }
Intents.java:39: ERROR: QUANDARY_TAINT_ERROR Error: Intent(Intent Intent.parseUri(String,int) at [line 31]) -> Intent(void ContextWrapper.sendBroadcast(Intent) at [line 39]) via { }
Intents.java:40: ERROR: QUANDARY_TAINT_ERROR Error: Intent(Intent Intent.parseIntent(Resources,XmlPullParser,AttributeSet) at [line 34]) -> Intent(void ContextWrapper.sendBroadcastAsUser(Intent,UserHandle) at [line 40]) via { }
Intents.java:40: ERROR: QUANDARY_TAINT_ERROR Error: Intent(Intent Intent.parseUri(String,int) at [line 31]) -> Intent(void ContextWrapper.sendBroadcastAsUser(Intent,UserHandle) at [line 40]) via { }
Intents.java:41: ERROR: QUANDARY_TAINT_ERROR Error: Intent(Intent Intent.parseIntent(Resources,XmlPullParser,AttributeSet) at [line 34]) -> Intent(void ContextWrapper.sendOrderedBroadcast(Intent,String) at [line 41]) via { }
Intents.java:41: ERROR: QUANDARY_TAINT_ERROR Error: Intent(Intent Intent.parseUri(String,int) at [line 31]) -> Intent(void ContextWrapper.sendOrderedBroadcast(Intent,String) at [line 41]) via { }
Intents.java:42: ERROR: QUANDARY_TAINT_ERROR Error: Intent(Intent Intent.parseIntent(Resources,XmlPullParser,AttributeSet) at [line 34]) -> Intent(void ContextWrapper.sendStickyBroadcast(Intent) at [line 42]) via { }
Intents.java:42: ERROR: QUANDARY_TAINT_ERROR Error: Intent(Intent Intent.parseUri(String,int) at [line 31]) -> Intent(void ContextWrapper.sendStickyBroadcast(Intent) at [line 42]) via { }
Intents.java:43: ERROR: QUANDARY_TAINT_ERROR Error: Intent(Intent Intent.parseIntent(Resources,XmlPullParser,AttributeSet) at [line 34]) -> Intent(void ContextWrapper.sendStickyBroadcastAsUser(Intent,UserHandle) at [line 43]) via { }
Intents.java:43: ERROR: QUANDARY_TAINT_ERROR Error: Intent(Intent Intent.parseUri(String,int) at [line 31]) -> Intent(void ContextWrapper.sendStickyBroadcastAsUser(Intent,UserHandle) at [line 43]) via { }
Intents.java:44: ERROR: QUANDARY_TAINT_ERROR Error: Intent(Intent Intent.parseIntent(Resources,XmlPullParser,AttributeSet) at [line 34]) -> Intent(void ContextWrapper.sendStickyOrderedBroadcast(Intent,BroadcastReceiver,Handler,int,String,Bundle) at [line 44]) via { }
Intents.java:44: ERROR: QUANDARY_TAINT_ERROR Error: Intent(Intent Intent.parseUri(String,int) at [line 31]) -> Intent(void ContextWrapper.sendStickyOrderedBroadcast(Intent,BroadcastReceiver,Handler,int,String,Bundle) at [line 44]) via { }
Intents.java:45: ERROR: QUANDARY_TAINT_ERROR Error: Intent(Intent Intent.parseIntent(Resources,XmlPullParser,AttributeSet) at [line 34]) -> Intent(void ContextWrapper.sendStickyOrderedBroadcastAsUser(Intent,UserHandle,BroadcastReceiver,Handler,int,String,Bundle) at [line 45]) via { }
Intents.java:45: ERROR: QUANDARY_TAINT_ERROR Error: Intent(Intent Intent.parseUri(String,int) at [line 31]) -> Intent(void ContextWrapper.sendStickyOrderedBroadcastAsUser(Intent,UserHandle,BroadcastReceiver,Handler,int,String,Bundle) at [line 45]) via { }
Intents.java:46: ERROR: QUANDARY_TAINT_ERROR Error: Intent(Intent Intent.parseIntent(Resources,XmlPullParser,AttributeSet) at [line 34]) -> Intent(void Activity.startActivities(android.content.Intent[]) at [line 46]) via { }
Intents.java:46: ERROR: QUANDARY_TAINT_ERROR Error: Intent(Intent Intent.parseUri(String,int) at [line 31]) -> Intent(void Activity.startActivities(android.content.Intent[]) at [line 46]) via { }
Intents.java:47: ERROR: QUANDARY_TAINT_ERROR Error: Intent(Intent Intent.parseIntent(Resources,XmlPullParser,AttributeSet) at [line 34]) -> Intent(void Activity.startActivity(Intent) at [line 47]) via { }
Intents.java:47: ERROR: QUANDARY_TAINT_ERROR Error: Intent(Intent Intent.parseUri(String,int) at [line 31]) -> Intent(void Activity.startActivity(Intent) at [line 47]) via { }
Intents.java:48: ERROR: QUANDARY_TAINT_ERROR Error: Intent(Intent Intent.parseIntent(Resources,XmlPullParser,AttributeSet) at [line 34]) -> Intent(void Activity.startActivityForResult(Intent,int) at [line 48]) via { }
Intents.java:48: ERROR: QUANDARY_TAINT_ERROR Error: Intent(Intent Intent.parseUri(String,int) at [line 31]) -> Intent(void Activity.startActivityForResult(Intent,int) at [line 48]) via { }
Intents.java:49: ERROR: QUANDARY_TAINT_ERROR Error: Intent(Intent Intent.parseIntent(Resources,XmlPullParser,AttributeSet) at [line 34]) -> Intent(boolean Activity.startActivityIfNeeded(Intent,int) at [line 49]) via { }
Intents.java:49: ERROR: QUANDARY_TAINT_ERROR Error: Intent(Intent Intent.parseUri(String,int) at [line 31]) -> Intent(boolean Activity.startActivityIfNeeded(Intent,int) at [line 49]) via { }
Intents.java:50: ERROR: QUANDARY_TAINT_ERROR Error: Intent(Intent Intent.parseIntent(Resources,XmlPullParser,AttributeSet) at [line 34]) -> Intent(void Activity.startActivityFromChild(Activity,Intent,int) at [line 50]) via { }
Intents.java:50: ERROR: QUANDARY_TAINT_ERROR Error: Intent(Intent Intent.parseUri(String,int) at [line 31]) -> Intent(void Activity.startActivityFromChild(Activity,Intent,int) at [line 50]) via { }
Intents.java:51: ERROR: QUANDARY_TAINT_ERROR Error: Intent(Intent Intent.parseIntent(Resources,XmlPullParser,AttributeSet) at [line 34]) -> Intent(void Activity.startActivityFromFragment(Fragment,Intent,int) at [line 51]) via { }
Intents.java:51: ERROR: QUANDARY_TAINT_ERROR Error: Intent(Intent Intent.parseUri(String,int) at [line 31]) -> Intent(void Activity.startActivityFromFragment(Fragment,Intent,int) at [line 51]) via { }
Intents.java:52: ERROR: QUANDARY_TAINT_ERROR Error: Intent(Intent Intent.parseIntent(Resources,XmlPullParser,AttributeSet) at [line 34]) -> Intent(ComponentName ContextWrapper.startService(Intent) at [line 52]) via { }
Intents.java:52: ERROR: QUANDARY_TAINT_ERROR Error: Intent(Intent Intent.parseUri(String,int) at [line 31]) -> Intent(ComponentName ContextWrapper.startService(Intent) at [line 52]) via { }
Interprocedural.java:39: ERROR: QUANDARY_TAINT_ERROR Error: Other(Object InferTaint.inferSecretSource() at [line 31]) -> Other(void InferTaint.inferSensitiveSink(Object) at [line 39]) via { Object Interprocedural.returnSourceDirect() at [line 39] }
Interprocedural.java:44: ERROR: QUANDARY_TAINT_ERROR Error: Other(Object InferTaint.inferSecretSource() at [line 31]) -> Other(void InferTaint.inferSensitiveSink(Object) at [line 44]) via { Object Interprocedural.returnSourceDirect() at [line 43] }
Interprocedural.java:48: ERROR: QUANDARY_TAINT_ERROR Error: Other(Object InferTaint.inferSecretSource() at [line 35]) -> Other(void InferTaint.inferSensitiveSink(Object) at [line 48]) via { Object Interprocedural.returnSourceIndirect() at [line 48] }
@ -103,19 +103,46 @@ Interprocedural.java:228: ERROR: QUANDARY_TAINT_ERROR Error: Other(Object InferT
Interprocedural.java:239: ERROR: QUANDARY_TAINT_ERROR Error: Other(Object InferTaint.inferSecretSource() at [line 237]) -> Other(void InferTaint.inferSensitiveSink(Object) at [line 239]) via { }
Interprocedural.java:251: ERROR: QUANDARY_TAINT_ERROR Error: Other(Object InferTaint.inferSecretSource() at [line 251]) -> Other(void InferTaint.inferSensitiveSink(Object) at [line 247]) via { void Interprocedural.callSinkVariadic(java.lang.Object[]) at [line 251] }
Interprocedural.java:262: ERROR: QUANDARY_TAINT_ERROR Error: Other(Object InferTaint.inferSecretSource() at [line 260]) -> Other(void InferTaint.inferSensitiveSink(Object) at [line 262]) via { }
LoggingPrivateData.java:20: ERROR: QUANDARY_TAINT_ERROR Error: PrivateData(String SharedPreferences.getString(String,String) at [line 20]) -> Logging(int Log.e(String,String) at [line 20]) via { }
LoggingPrivateData.java:24: ERROR: QUANDARY_TAINT_ERROR Error: PrivateData(String SharedPreferences.getString(String,String) at [line 24]) -> Logging(int Log.e(String,String) at [line 24]) via { }
LoggingPrivateData.java:39: ERROR: QUANDARY_TAINT_ERROR Error: PrivateData(String SharedPreferences.getString(String,String) at [line 38]) -> Logging(int Log.w(String,Throwable) at [line 39]) via { }
LoggingPrivateData.java:76: ERROR: QUANDARY_TAINT_ERROR Error: PrivateData(String TelephonyManager.getDeviceId() at [line 61]) -> Logging(int Log.e(String,String) at [line 76]) via { String LoggingPrivateData.returnAllSources(Location,TelephonyManager) at [line 75] }
LoggingPrivateData.java:76: ERROR: QUANDARY_TAINT_ERROR Error: PrivateData(String TelephonyManager.getLine1Number() at [line 63]) -> Logging(int Log.e(String,String) at [line 76]) via { String LoggingPrivateData.returnAllSources(Location,TelephonyManager) at [line 75] }
LoggingPrivateData.java:76: ERROR: QUANDARY_TAINT_ERROR Error: PrivateData(String TelephonyManager.getSimSerialNumber() at [line 65]) -> Logging(int Log.e(String,String) at [line 76]) via { String LoggingPrivateData.returnAllSources(Location,TelephonyManager) at [line 75] }
LoggingPrivateData.java:76: ERROR: QUANDARY_TAINT_ERROR Error: PrivateData(String TelephonyManager.getSubscriberId() at [line 67]) -> Logging(int Log.e(String,String) at [line 76]) via { String LoggingPrivateData.returnAllSources(Location,TelephonyManager) at [line 75] }
LoggingPrivateData.java:76: ERROR: QUANDARY_TAINT_ERROR Error: PrivateData(String TelephonyManager.getVoiceMailNumber() at [line 69]) -> Logging(int Log.e(String,String) at [line 76]) via { String LoggingPrivateData.returnAllSources(Location,TelephonyManager) at [line 75] }
LoggingPrivateData.java:76: ERROR: QUANDARY_TAINT_ERROR Error: PrivateData(double Location.getAltitude() at [line 51]) -> Logging(int Log.e(String,String) at [line 76]) via { String LoggingPrivateData.returnAllSources(Location,TelephonyManager) at [line 75] }
LoggingPrivateData.java:76: ERROR: QUANDARY_TAINT_ERROR Error: PrivateData(double Location.getLatitude() at [line 55]) -> Logging(int Log.e(String,String) at [line 76]) via { String LoggingPrivateData.returnAllSources(Location,TelephonyManager) at [line 75] }
LoggingPrivateData.java:76: ERROR: QUANDARY_TAINT_ERROR Error: PrivateData(double Location.getLongitude() at [line 57]) -> Logging(int Log.e(String,String) at [line 76]) via { String LoggingPrivateData.returnAllSources(Location,TelephonyManager) at [line 75] }
LoggingPrivateData.java:76: ERROR: QUANDARY_TAINT_ERROR Error: PrivateData(float Location.getBearing() at [line 53]) -> Logging(int Log.e(String,String) at [line 76]) via { String LoggingPrivateData.returnAllSources(Location,TelephonyManager) at [line 75] }
LoggingPrivateData.java:76: ERROR: QUANDARY_TAINT_ERROR Error: PrivateData(float Location.getSpeed() at [line 59]) -> Logging(int Log.e(String,String) at [line 76]) via { String LoggingPrivateData.returnAllSources(Location,TelephonyManager) at [line 75] }
LoggingPrivateData.java:57: ERROR: QUANDARY_TAINT_ERROR Error: PrivateData(String TelephonyManager.getDeviceId() at [line 40]) -> Logging(int Log.e(String,String) at [line 57]) via { String String.valueOf(double) at [line 25], String String.valueOf(double) at [line 31], String String.valueOf(double) at [line 34], String String.valueOf(float) at [line 28], String String.valueOf(float) at [line 37] }
LoggingPrivateData.java:57: ERROR: QUANDARY_TAINT_ERROR Error: PrivateData(String TelephonyManager.getLine1Number() at [line 43]) -> Logging(int Log.e(String,String) at [line 57]) via { String String.valueOf(double) at [line 25], String String.valueOf(double) at [line 31], String String.valueOf(double) at [line 34], String String.valueOf(float) at [line 28], String String.valueOf(float) at [line 37] }
LoggingPrivateData.java:57: ERROR: QUANDARY_TAINT_ERROR Error: PrivateData(String TelephonyManager.getSimSerialNumber() at [line 46]) -> Logging(int Log.e(String,String) at [line 57]) via { String String.valueOf(double) at [line 25], String String.valueOf(double) at [line 31], String String.valueOf(double) at [line 34], String String.valueOf(float) at [line 28], String String.valueOf(float) at [line 37] }
LoggingPrivateData.java:57: ERROR: QUANDARY_TAINT_ERROR Error: PrivateData(String TelephonyManager.getSubscriberId() at [line 49]) -> Logging(int Log.e(String,String) at [line 57]) via { String String.valueOf(double) at [line 25], String String.valueOf(double) at [line 31], String String.valueOf(double) at [line 34], String String.valueOf(float) at [line 28], String String.valueOf(float) at [line 37] }
LoggingPrivateData.java:57: ERROR: QUANDARY_TAINT_ERROR Error: PrivateData(String TelephonyManager.getVoiceMailNumber() at [line 52]) -> Logging(int Log.e(String,String) at [line 57]) via { String String.valueOf(double) at [line 25], String String.valueOf(double) at [line 31], String String.valueOf(double) at [line 34], String String.valueOf(float) at [line 28], String String.valueOf(float) at [line 37] }
LoggingPrivateData.java:57: ERROR: QUANDARY_TAINT_ERROR Error: PrivateData(double Location.getAltitude() at [line 25]) -> Logging(int Log.e(String,String) at [line 57]) via { String String.valueOf(double) at [line 25], String String.valueOf(double) at [line 31], String String.valueOf(double) at [line 34], String String.valueOf(float) at [line 28], String String.valueOf(float) at [line 37] }
LoggingPrivateData.java:57: ERROR: QUANDARY_TAINT_ERROR Error: PrivateData(double Location.getLatitude() at [line 31]) -> Logging(int Log.e(String,String) at [line 57]) via { String String.valueOf(double) at [line 25], String String.valueOf(double) at [line 31], String String.valueOf(double) at [line 34], String String.valueOf(float) at [line 28], String String.valueOf(float) at [line 37] }
LoggingPrivateData.java:57: ERROR: QUANDARY_TAINT_ERROR Error: PrivateData(double Location.getLongitude() at [line 34]) -> Logging(int Log.e(String,String) at [line 57]) via { String String.valueOf(double) at [line 25], String String.valueOf(double) at [line 31], String String.valueOf(double) at [line 34], String String.valueOf(float) at [line 28], String String.valueOf(float) at [line 37] }
LoggingPrivateData.java:57: ERROR: QUANDARY_TAINT_ERROR Error: PrivateData(float Location.getBearing() at [line 28]) -> Logging(int Log.e(String,String) at [line 57]) via { String String.valueOf(double) at [line 25], String String.valueOf(double) at [line 31], String String.valueOf(double) at [line 34], String String.valueOf(float) at [line 28], String String.valueOf(float) at [line 37] }
LoggingPrivateData.java:57: ERROR: QUANDARY_TAINT_ERROR Error: PrivateData(float Location.getSpeed() at [line 37]) -> Logging(int Log.e(String,String) at [line 57]) via { String String.valueOf(double) at [line 25], String String.valueOf(double) at [line 31], String String.valueOf(double) at [line 34], String String.valueOf(float) at [line 28], String String.valueOf(float) at [line 37] }
LoggingPrivateData.java:58: ERROR: QUANDARY_TAINT_ERROR Error: PrivateData(String TelephonyManager.getDeviceId() at [line 40]) -> Logging(int Log.println(int,String,String) at [line 58]) via { String String.valueOf(double) at [line 25], String String.valueOf(double) at [line 31], String String.valueOf(double) at [line 34], String String.valueOf(float) at [line 28], String String.valueOf(float) at [line 37] }
LoggingPrivateData.java:58: ERROR: QUANDARY_TAINT_ERROR Error: PrivateData(String TelephonyManager.getLine1Number() at [line 43]) -> Logging(int Log.println(int,String,String) at [line 58]) via { String String.valueOf(double) at [line 25], String String.valueOf(double) at [line 31], String String.valueOf(double) at [line 34], String String.valueOf(float) at [line 28], String String.valueOf(float) at [line 37] }
LoggingPrivateData.java:58: ERROR: QUANDARY_TAINT_ERROR Error: PrivateData(String TelephonyManager.getSimSerialNumber() at [line 46]) -> Logging(int Log.println(int,String,String) at [line 58]) via { String String.valueOf(double) at [line 25], String String.valueOf(double) at [line 31], String String.valueOf(double) at [line 34], String String.valueOf(float) at [line 28], String String.valueOf(float) at [line 37] }
LoggingPrivateData.java:58: ERROR: QUANDARY_TAINT_ERROR Error: PrivateData(String TelephonyManager.getSubscriberId() at [line 49]) -> Logging(int Log.println(int,String,String) at [line 58]) via { String String.valueOf(double) at [line 25], String String.valueOf(double) at [line 31], String String.valueOf(double) at [line 34], String String.valueOf(float) at [line 28], String String.valueOf(float) at [line 37] }
LoggingPrivateData.java:58: ERROR: QUANDARY_TAINT_ERROR Error: PrivateData(String TelephonyManager.getVoiceMailNumber() at [line 52]) -> Logging(int Log.println(int,String,String) at [line 58]) via { String String.valueOf(double) at [line 25], String String.valueOf(double) at [line 31], String String.valueOf(double) at [line 34], String String.valueOf(float) at [line 28], String String.valueOf(float) at [line 37] }
LoggingPrivateData.java:58: ERROR: QUANDARY_TAINT_ERROR Error: PrivateData(double Location.getAltitude() at [line 25]) -> Logging(int Log.println(int,String,String) at [line 58]) via { String String.valueOf(double) at [line 25], String String.valueOf(double) at [line 31], String String.valueOf(double) at [line 34], String String.valueOf(float) at [line 28], String String.valueOf(float) at [line 37] }
LoggingPrivateData.java:58: ERROR: QUANDARY_TAINT_ERROR Error: PrivateData(double Location.getLatitude() at [line 31]) -> Logging(int Log.println(int,String,String) at [line 58]) via { String String.valueOf(double) at [line 25], String String.valueOf(double) at [line 31], String String.valueOf(double) at [line 34], String String.valueOf(float) at [line 28], String String.valueOf(float) at [line 37] }
LoggingPrivateData.java:58: ERROR: QUANDARY_TAINT_ERROR Error: PrivateData(double Location.getLongitude() at [line 34]) -> Logging(int Log.println(int,String,String) at [line 58]) via { String String.valueOf(double) at [line 25], String String.valueOf(double) at [line 31], String String.valueOf(double) at [line 34], String String.valueOf(float) at [line 28], String String.valueOf(float) at [line 37] }
LoggingPrivateData.java:58: ERROR: QUANDARY_TAINT_ERROR Error: PrivateData(float Location.getBearing() at [line 28]) -> Logging(int Log.println(int,String,String) at [line 58]) via { String String.valueOf(double) at [line 25], String String.valueOf(double) at [line 31], String String.valueOf(double) at [line 34], String String.valueOf(float) at [line 28], String String.valueOf(float) at [line 37] }
LoggingPrivateData.java:58: ERROR: QUANDARY_TAINT_ERROR Error: PrivateData(float Location.getSpeed() at [line 37]) -> Logging(int Log.println(int,String,String) at [line 58]) via { String String.valueOf(double) at [line 25], String String.valueOf(double) at [line 31], String String.valueOf(double) at [line 34], String String.valueOf(float) at [line 28], String String.valueOf(float) at [line 37] }
LoggingPrivateData.java:59: ERROR: QUANDARY_TAINT_ERROR Error: PrivateData(String TelephonyManager.getDeviceId() at [line 40]) -> Logging(int Log.w(String,String) at [line 59]) via { String String.valueOf(double) at [line 25], String String.valueOf(double) at [line 31], String String.valueOf(double) at [line 34], String String.valueOf(float) at [line 28], String String.valueOf(float) at [line 37] }
LoggingPrivateData.java:59: ERROR: QUANDARY_TAINT_ERROR Error: PrivateData(String TelephonyManager.getLine1Number() at [line 43]) -> Logging(int Log.w(String,String) at [line 59]) via { String String.valueOf(double) at [line 25], String String.valueOf(double) at [line 31], String String.valueOf(double) at [line 34], String String.valueOf(float) at [line 28], String String.valueOf(float) at [line 37] }
LoggingPrivateData.java:59: ERROR: QUANDARY_TAINT_ERROR Error: PrivateData(String TelephonyManager.getSimSerialNumber() at [line 46]) -> Logging(int Log.w(String,String) at [line 59]) via { String String.valueOf(double) at [line 25], String String.valueOf(double) at [line 31], String String.valueOf(double) at [line 34], String String.valueOf(float) at [line 28], String String.valueOf(float) at [line 37] }
LoggingPrivateData.java:59: ERROR: QUANDARY_TAINT_ERROR Error: PrivateData(String TelephonyManager.getSubscriberId() at [line 49]) -> Logging(int Log.w(String,String) at [line 59]) via { String String.valueOf(double) at [line 25], String String.valueOf(double) at [line 31], String String.valueOf(double) at [line 34], String String.valueOf(float) at [line 28], String String.valueOf(float) at [line 37] }
LoggingPrivateData.java:59: ERROR: QUANDARY_TAINT_ERROR Error: PrivateData(String TelephonyManager.getVoiceMailNumber() at [line 52]) -> Logging(int Log.w(String,String) at [line 59]) via { String String.valueOf(double) at [line 25], String String.valueOf(double) at [line 31], String String.valueOf(double) at [line 34], String String.valueOf(float) at [line 28], String String.valueOf(float) at [line 37] }
LoggingPrivateData.java:59: ERROR: QUANDARY_TAINT_ERROR Error: PrivateData(double Location.getAltitude() at [line 25]) -> Logging(int Log.w(String,String) at [line 59]) via { String String.valueOf(double) at [line 25], String String.valueOf(double) at [line 31], String String.valueOf(double) at [line 34], String String.valueOf(float) at [line 28], String String.valueOf(float) at [line 37] }
LoggingPrivateData.java:59: ERROR: QUANDARY_TAINT_ERROR Error: PrivateData(double Location.getLatitude() at [line 31]) -> Logging(int Log.w(String,String) at [line 59]) via { String String.valueOf(double) at [line 25], String String.valueOf(double) at [line 31], String String.valueOf(double) at [line 34], String String.valueOf(float) at [line 28], String String.valueOf(float) at [line 37] }
LoggingPrivateData.java:59: ERROR: QUANDARY_TAINT_ERROR Error: PrivateData(double Location.getLongitude() at [line 34]) -> Logging(int Log.w(String,String) at [line 59]) via { String String.valueOf(double) at [line 25], String String.valueOf(double) at [line 31], String String.valueOf(double) at [line 34], String String.valueOf(float) at [line 28], String String.valueOf(float) at [line 37] }
LoggingPrivateData.java:59: ERROR: QUANDARY_TAINT_ERROR Error: PrivateData(float Location.getBearing() at [line 28]) -> Logging(int Log.w(String,String) at [line 59]) via { String String.valueOf(double) at [line 25], String String.valueOf(double) at [line 31], String String.valueOf(double) at [line 34], String String.valueOf(float) at [line 28], String String.valueOf(float) at [line 37] }
LoggingPrivateData.java:59: ERROR: QUANDARY_TAINT_ERROR Error: PrivateData(float Location.getSpeed() at [line 37]) -> Logging(int Log.w(String,String) at [line 59]) via { String String.valueOf(double) at [line 25], String String.valueOf(double) at [line 31], String String.valueOf(double) at [line 34], String String.valueOf(float) at [line 28], String String.valueOf(float) at [line 37] }
LoggingPrivateData.java:60: ERROR: QUANDARY_TAINT_ERROR Error: PrivateData(String TelephonyManager.getDeviceId() at [line 40]) -> Logging(int Log.wtf(String,String) at [line 60]) via { String String.valueOf(double) at [line 25], String String.valueOf(double) at [line 31], String String.valueOf(double) at [line 34], String String.valueOf(float) at [line 28], String String.valueOf(float) at [line 37] }
LoggingPrivateData.java:60: ERROR: QUANDARY_TAINT_ERROR Error: PrivateData(String TelephonyManager.getLine1Number() at [line 43]) -> Logging(int Log.wtf(String,String) at [line 60]) via { String String.valueOf(double) at [line 25], String String.valueOf(double) at [line 31], String String.valueOf(double) at [line 34], String String.valueOf(float) at [line 28], String String.valueOf(float) at [line 37] }
LoggingPrivateData.java:60: ERROR: QUANDARY_TAINT_ERROR Error: PrivateData(String TelephonyManager.getSimSerialNumber() at [line 46]) -> Logging(int Log.wtf(String,String) at [line 60]) via { String String.valueOf(double) at [line 25], String String.valueOf(double) at [line 31], String String.valueOf(double) at [line 34], String String.valueOf(float) at [line 28], String String.valueOf(float) at [line 37] }
LoggingPrivateData.java:60: ERROR: QUANDARY_TAINT_ERROR Error: PrivateData(String TelephonyManager.getSubscriberId() at [line 49]) -> Logging(int Log.wtf(String,String) at [line 60]) via { String String.valueOf(double) at [line 25], String String.valueOf(double) at [line 31], String String.valueOf(double) at [line 34], String String.valueOf(float) at [line 28], String String.valueOf(float) at [line 37] }
LoggingPrivateData.java:60: ERROR: QUANDARY_TAINT_ERROR Error: PrivateData(String TelephonyManager.getVoiceMailNumber() at [line 52]) -> Logging(int Log.wtf(String,String) at [line 60]) via { String String.valueOf(double) at [line 25], String String.valueOf(double) at [line 31], String String.valueOf(double) at [line 34], String String.valueOf(float) at [line 28], String String.valueOf(float) at [line 37] }
LoggingPrivateData.java:60: ERROR: QUANDARY_TAINT_ERROR Error: PrivateData(double Location.getAltitude() at [line 25]) -> Logging(int Log.wtf(String,String) at [line 60]) via { String String.valueOf(double) at [line 25], String String.valueOf(double) at [line 31], String String.valueOf(double) at [line 34], String String.valueOf(float) at [line 28], String String.valueOf(float) at [line 37] }
LoggingPrivateData.java:60: ERROR: QUANDARY_TAINT_ERROR Error: PrivateData(double Location.getLatitude() at [line 31]) -> Logging(int Log.wtf(String,String) at [line 60]) via { String String.valueOf(double) at [line 25], String String.valueOf(double) at [line 31], String String.valueOf(double) at [line 34], String String.valueOf(float) at [line 28], String String.valueOf(float) at [line 37] }
LoggingPrivateData.java:60: ERROR: QUANDARY_TAINT_ERROR Error: PrivateData(double Location.getLongitude() at [line 34]) -> Logging(int Log.wtf(String,String) at [line 60]) via { String String.valueOf(double) at [line 25], String String.valueOf(double) at [line 31], String String.valueOf(double) at [line 34], String String.valueOf(float) at [line 28], String String.valueOf(float) at [line 37] }
LoggingPrivateData.java:60: ERROR: QUANDARY_TAINT_ERROR Error: PrivateData(float Location.getBearing() at [line 28]) -> Logging(int Log.wtf(String,String) at [line 60]) via { String String.valueOf(double) at [line 25], String String.valueOf(double) at [line 31], String String.valueOf(double) at [line 34], String String.valueOf(float) at [line 28], String String.valueOf(float) at [line 37] }
LoggingPrivateData.java:60: ERROR: QUANDARY_TAINT_ERROR Error: PrivateData(float Location.getSpeed() at [line 37]) -> Logging(int Log.wtf(String,String) at [line 60]) via { String String.valueOf(double) at [line 25], String String.valueOf(double) at [line 31], String String.valueOf(double) at [line 34], String String.valueOf(float) at [line 28], String String.valueOf(float) at [line 37] }
Recursion.java:26: ERROR: QUANDARY_TAINT_ERROR Error: Other(Object InferTaint.inferSecretSource() at [line 26]) -> Other(void InferTaint.inferSensitiveSink(Object) at [line 21]) via { void Recursion.callSinkThenDiverge(Object) at [line 26] }
Recursion.java:36: ERROR: QUANDARY_TAINT_ERROR Error: Other(Object InferTaint.inferSecretSource() at [line 36]) -> Other(void InferTaint.inferSensitiveSink(Object) at [line 31]) via { void Recursion.safeRecursionCallSink(int,Object) at [line 36] }
Recursion.java:42: ERROR: QUANDARY_TAINT_ERROR Error: Other(Object InferTaint.inferSecretSource() at [line 42]) -> Other(void InferTaint.inferSensitiveSink(Object) at [line 41]) via { void Recursion.recursionBad(int,Object) at [line 42] }

Loading…
Cancel
Save