Commit 4232a5fc authored by Joachim Müssig's avatar Joachim Müssig
Browse files

add example exceptionalControlFlowNoLeak2

parent a8b038ab
directoryPath : "/home/joachim/JoanaKeYBeispiele/SecureExamples/ExceptionalControlFlowNoLeak2/program",
pathKeY : "dependencies/Key/KeY.jar",
javaClass : "",
pathToJar : "testdata/build/src.jar",
pathToJavaFile : "src/",
pathToSDG : "SDG/program.pdg",
entryMethod : "program",
annotationPath : "",
fullyAutomatic : true,
pathToSaver : "SDG/program.dispro",
sources : [{securityLevel : "high", description : {from : "programPart", programPart : "parameter <param> 1 of method boolean program.callFoo(boolean)"}}],
sinks : [{securityLevel : "low", description : {from : "programPart", programPart : "(boolean program.callFoo(boolean):4) return v4"}}]
\ No newline at end of file
directoryPath : "/home/joachim/JoanaKeYBeispiele/SecureExamples/ExceptionalControlFlowNoLeak2/program",
pathKeY : "dependencies/Key/KeY.jar",
javaClass : "",
pathToJar : "testdata/build/src.jar",
pathToJavaFile : "src/",
pathToSDG : "SDG/program.pdg",
entryMethod : "program",
annotationPath : "",
fullyAutomatic : true,
pathToSaver : "SDG/program.dispro",
sources : [{securityLevel : "high", description : {from : "sdgNode", sdgNodeId : "39", sdgNode : "program.callFoo(Z)Z -> param 1 FRMI"}}],
sinks : [{securityLevel : "low", description : {from : "sdgNode", sdgNodeId : "37", sdgNode : "program.callFoo(Z)Z -> program.callFoo(boolean) EXIT"}}]
\ No newline at end of file
{"formal_ins_to_pers_cg" : [
{ "sdg_node" : 84, "cg_node" : {"id" : 5, "cg_node_id" :13, "ir" : {
"1" : "this"
}}},
{ "sdg_node" : 75, "cg_node" : {"id" : 4, "cg_node_id" :12, "ir" : {
}}},
],
"cg_nodes" : [
{"id" : 0, "cg_node_id" :0, "ir" : {
"1" : "this"
}},
{"id" : 1, "cg_node_id" :0, "ir" : {
}},
{"id" : 2, "cg_node_id" :0, "ir" : {
"1" : "this"
}},
{"id" : 3, "cg_node_id" :0, "ir" : {
"1" : "this"
}},
{"id" : 4, "cg_node_id" :12, "ir" : {
}},
{"id" : 5, "cg_node_id" :13, "ir" : {
"1" : "this"
}},
{"id" : 6, "cg_node_id" :0, "ir" : {
"1" : "this"
}},
],
"localPointerKeys" : [{"id" : 0, "value_number" : 1, "node" : 0
},
{"id" : 1, "value_number" : 1, "node" : 1
},
{"id" : 2, "value_number" : 1, "node" : 2
},
{"id" : 3, "value_number" : 1, "node" : 3
},
{"id" : 4, "value_number" : 1, "node" : 4
},
{"id" : 5, "value_number" : 1, "node" : 5
},
{"id" : 6, "value_number" : 1, "node" : 6
},
],
"disjunctPointsTo" : [],
"entryNodesToCG" : [{ "sdg_node" : 14, "cg_node" : 0},
{ "sdg_node" : 36, "cg_node" : 9},
{ "sdg_node" : 81, "cg_node" : 13},
{ "sdg_node" : 31, "cg_node" : 8},
{ "sdg_node" : 72, "cg_node" : 12},
{ "sdg_node" : 1, "cg_node" : 5},
{ "sdg_node" : 46, "cg_node" : 11},
],
"nodeToSSA" : [{ "sdg_node" : 79, "iIndex" : 2},
{ "sdg_node" : 76, "iIndex" : 1},
{ "sdg_node" : 62, "iIndex" : 17},
{ "sdg_node" : 60, "iIndex" : 12},
{ "sdg_node" : 57, "iIndex" : 11},
{ "sdg_node" : 56, "iIndex" : 9},
{ "sdg_node" : 55, "iIndex" : 8},
{ "sdg_node" : 52, "iIndex" : 7},
{ "sdg_node" : 51, "iIndex" : 5},
{ "sdg_node" : 50, "iIndex" : 4},
{ "sdg_node" : 44, "iIndex" : 2},
{ "sdg_node" : 40, "iIndex" : 1},
{ "sdg_node" : 34, "iIndex" : 1},
{ "sdg_node" : 28, "iIndex" : 5},
{ "sdg_node" : 25, "iIndex" : 4},
{ "sdg_node" : 24, "iIndex" : 3},
{ "sdg_node" : 23, "iIndex" : 3},
{ "sdg_node" : 22, "iIndex" : 3},
{ "sdg_node" : 21, "iIndex" : 3},
{ "sdg_node" : 20, "iIndex" : 2},
{ "sdg_node" : 19, "iIndex" : 1},
{ "sdg_node" : 17, "iIndex" : 0},
{ "sdg_node" : 12, "iIndex" : 3},
{ "sdg_node" : 8, "iIndex" : 1},
{ "sdg_node" : 5, "iIndex" : 0},
]
}
\ No newline at end of file
SDG "program.main(java.lang.String[])" root 14 {
ENTR 1 {
O entry;
V "program.main(java.lang.String[])";
P 4;
S "program.java":0,0-0,0;
B "program.main([Ljava/lang/String;)V":-1;
Z 0;
C "Application";
HE 2;
HE 3;
HE 4;
HE 5;
HE 8;
HE 101;
HE 102;
PS 3;
PS 4;
CF 4;
CD 5;
CD 8;
CE 2;
CE 3;
CE 4;
CE 101;
CE 102;
}
EXIT 2 {
O exit;
V "program.main(java.lang.String[])";
T "V";
P 4;
S "program.java":0,0-0,0;
B "<exit>":-2;
Z 0;
RF 118;
}
FRMO 3 {
O form-out;
V "_exception_";
T "Ljava/lang/Exception";
P 4;
S "program.java":0,0-0,0;
B "<exception>":-2;
Z 0;
PS 101;
PS 102;
CF 101: "exc";
PO 30;
}
FRMI 4 {
O form-in;
V "param 1";
T "[Ljava/lang/String";
P 4;
S "program.java":0,0-0,0;
B "<param> 1":-2;
Z 0;
LD ["null"];
PS 101;
CF 5;
}
CALL 5 {
O call;
V "v4 = randBool()";
T "Z";
P 4;
S "program.java":28,0-28,0;
B "program.main([Ljava/lang/String;)V":0;
Z 0;
HE 6;
HE 7;
PS 6;
PS 7;
CF 116;
CE 6;
CE 7;
CE 116;
CL 31: "virtual";
}
ACTO 6 {
O act-out;
V "ret 0";
T "Z";
P 4;
S "program.java":28,0-28,0;
B "<exit>":-2;
Z 0;
CF 7;
DD 9;
}
ACTO 7 {
O act-out;
V "ret _exception_";
T "Ljava/lang/Exception";
P 4;
S "program.java":28,0-28,0;
B "<exception>":-2;
Z 0;
HE 116;
CF 9;
CE 116;
}
CALL 8 {
O call;
V "v6 = callFoo(v4)";
T "Z";
P 4;
S "program.java":28,0-28,0;
B "program.main([Ljava/lang/String;)V":3;
Z 0;
HE 9;
HE 10;
HE 11;
HE 103;
HE 104;
PS 9;
PS 10;
PS 11;
CF 117;
CE 9;
CE 10;
CE 11;
CE 103;
CE 104;
CE 117;
CL 36: "virtual";
}
ACTI 9 {
O act-in;
V "param 1 [v4]";
T "Z";
P 4;
S "program.java":28,0-28,0;
B "<param> 1":-2;
Z 0;
CF 8;
SU 10;
SU 11;
SU 103;
SU 104;
PI 39;
}
ACTO 10 {
O act-out;
V "ret 0";
T "Z";
P 4;
S "program.java":28,0-28,0;
B "<exit>":-2;
Z 0;
CF 11: "exc";
CF 12;
}
ACTO 11 {
O act-out;
V "ret _exception_";
T "Ljava/lang/Exception";
P 4;
S "program.java":28,0-28,0;
B "<exception>":-2;
Z 0;
HE 117;
PS 103;
PS 104;
CF 3: "exc";
CE 117;
DD 3;
}
NORM 12 {
O compound;
V "return";
T "V";
P 4;
S "program.java":29,0-29,0;
B "program.main([Ljava/lang/String;)V":7;
Z 0;
CF 101;
}
ENTR 14 {
O entry;
V "com.ibm.wala.FakeRootClass.fakeRootMethod()";
P 5;
S "com/ibm/wala/FakeRootClass.java":0,0-0,0;
B "com.ibm.wala.FakeRootClass.fakeRootMethod()V":-1;
Z 0;
C "Primordial";
HE 15;
HE 16;
HE 17;
HE 105;
HE 106;
PS 16;
CF 17;
CD 17;
CE 15;
CE 16;
CE 105;
CE 106;
}
EXIT 15 {
O exit;
V "com.ibm.wala.FakeRootClass.fakeRootMethod()";
T "V";
P 5;
S "com/ibm/wala/FakeRootClass.java":0,0-0,0;
B "<exit>":-2;
Z 0;
}
FRMO 16 {
O form-out;
V "_exception_";
T "Ljava/lang/Exception";
P 5;
S "com/ibm/wala/FakeRootClass.java":0,0-0,0;
B "<exception>":-2;
Z 0;
PS 105;
PS 106;
CF 105: "exc";
}
CALL 17 {
O call;
V "fakeWorldClinit()";
T "V";
P 5;
S "com/ibm/wala/FakeRootClass.java":0,0-0,0;
B "com.ibm.wala.FakeRootClass.fakeRootMethod()V":-1;
Z 0;
U "com.ibm.wala.FakeRootClass.fakeWorldClinit()V";
HE 18;
HE 19;
HE 107;
HE 113;
PS 18;
CF 113;
CD 19;
CE 18;
CE 107;
CE 113;
}
ACTO 18 {
O act-out;
V "ret _exception_";
T "Ljava/lang/Exception";
P 5;
S "com/ibm/wala/FakeRootClass.java":0,0-0,0;
B "<exception>":-2;
Z 0;
CF 16: "exc";
DD 16;
}
NORM 19 {
O declaration;
V "v3 = new java.lang.String[]";
T "[Ljava/lang/String";
P 5;
S "com/ibm/wala/FakeRootClass.java":0,0-0,0;
B "com.ibm.wala.FakeRootClass.fakeRootMethod()V":-1;
Z 0;
HE 20;
HE 22;
CF 16: "exc";
CF 20;
CD 16;
CD 20;
CD 22;
DD 22;
DD 26;
DD 29;
}
NORM 20 {
O declaration;
V "v5 = new java.lang.String";
T "Ljava/lang/String";
P 5;
S "com/ibm/wala/FakeRootClass.java":0,0-0,0;
B "com.ibm.wala.FakeRootClass.fakeRootMethod()V":-1;
Z 0;
CF 22;
DD 21;
}
EXPR 21 {
O modify;
V "v3[#(0)] = v5";
T "Ljava/lang/String";
P 5;
S "com/ibm/wala/FakeRootClass.java":0,0-0,0;
B "com.ibm.wala.FakeRootClass.fakeRootMethod()V":-1;
Z 0;
CF 23;
CE 23;
DD 23;
}
NORM 22 {
O compound;
V "base";
T "[Ljava/lang/Object";
P 5;
S "com/ibm/wala/FakeRootClass.java":0,0-0,0;
B "com.ibm.wala.FakeRootClass.fakeRootMethod()V":-1;
Z 0;
HE 23;
HE 24;
HE 25;
PS 23;
CF 16: "exc";
CF 24;
CF 26;
CD 16;
CD 23;
CD 24;
CD 25;
CE 24;
DD 21;
}
NORM 23 {
O compound;
V "field [java.lang.Object]";
T "Ljava/lang/Object";
P 5;
S "com/ibm/wala/FakeRootClass.java":0,0-0,0;
B "com.ibm.wala.FakeRootClass.fakeRootMethod()V":-1;
Z 0;
CF 22;
}
NORM 24 {
O compound;
V "index";
T "I";
P 5;
S "com/ibm/wala/FakeRootClass.java":0,0-0,0;
B "com.ibm.wala.FakeRootClass.fakeRootMethod()V":-1;
Z 0;
HE 21;
CF 21;
CE 21;
CE 22;
DD 21;
}
CALL 25 {
O call;
V "v3.<init>()";
T "V";
P 5;
S "com/ibm/wala/FakeRootClass.java":0,0-0,0;
B "com.ibm.wala.FakeRootClass.fakeRootMethod()V":-1;
Z 0;
U "java.lang.Object.<init>()V";
HE 26;
HE 27;
HE 28;
HE 108;
HE 111;
HE 114;
PS 26;
PS 27;
CF 114;
CD 28;
CE 26;
CE 27;
CE 108;
CE 111;
CE 114;
}
ACTI 26 {
O act-in;
V "this [v3]";
T "Ljava/lang/Object";
P 5;
S "com/ibm/wala/FakeRootClass.java":0,0-0,0;
B "<param> 0":-2;
Z 0;
PS 108;
CF 25;
CD 25;
DD 114;
}
ACTO 27 {
O act-out;
V "ret _exception_";
T "Ljava/lang/Exception";
P 5;
S "com/ibm/wala/FakeRootClass.java":0,0-0,0;
B "<exception>":-2;
Z 0;
CF 16: "exc";
DD 16;
DD 111;
}
CALL 28 {
O call;
V "main(v3)";
T "V";
P 5;
S "com/ibm/wala/FakeRootClass.java":0,0-0,0;
B "com.ibm.wala.FakeRootClass.fakeRootMethod()V":-1;
Z 0;
HE 29;
HE 30;
HE 109;
HE 110;
PS 29;
PS 30;
CF 118;
CE 29;
CE 30;
CE 109;
CE 110;
CE 118;
CL 1: "virtual";
}
ACTI 29 {
O act-in;
V "param 1 [v3]";
T "[Ljava/lang/String";
P 5;
S "com/ibm/wala/FakeRootClass.java":0,0-0,0;
B "<param> 1":-2;
Z 0;
PS 109;
CF 28;
PI 4;
}
ACTO 30 {
O act-out;
V "ret _exception_";
T "Ljava/lang/Exception";
P 5;
S "com/ibm/wala/FakeRootClass.java":0,0-0,0;
B "<exception>":-2;
Z 0;
HE 118;
PS 109;
PS 110;
CF 16: "exc";
CE 118;
DD 16;
}
ENTR 31 {
O entry;
V "program.randBool()";
P 6;
S "program.java":0,0-0,0;
B "program.randBool()Z":-1;
Z 0;
C "Application";
HE 32;
HE 33;
HE 34;
PS 32;
PS 33;
CF 34;
CD 34;
CE 32;
CE 33;
}
EXIT 32 {
O exit;
V "program.randBool()";
T "Z";
P 6;
S "program.java":0,0-0,0;
B "<exit>":-2;
Z 0;
RF 116;
PO 6;
}
FRMO 33 {
O form-out;
V "_exception_";
T "Ljava/lang/Exception";
P 6;
S "program.java":0,0-0,0;
B "<exception>":-2;
CF 32: "exc";
PO 7;
}
NORM 34 {
O compound;
V "return #(1)";
T "Z";
P 6;
S "program.java":36,0-36,0;
B "program.randBool()Z":1;
Z 0;
CF 32;
DD 32;
}
ENTR 36 {
O entry;
V "program.callFoo(boolean)";
P 7;
S "program.java":0,0-0,0;
B "program.callFoo(Z)Z":-1;
Z 0;