mirror of
https://github.com/github/codeql.git
synced 2026-04-29 10:45:15 +02:00
Rust: Expand the Wrapping test some more.
This commit is contained in:
@@ -47,9 +47,25 @@
|
||||
| main.rs:173:5:173:5 | [post] a [implicit borrow] | main.rs:173:5:173:5 | [post] a |
|
||||
| main.rs:174:5:174:5 | [post] a [implicit borrow] | main.rs:174:5:174:5 | [post] a |
|
||||
| main.rs:175:5:175:5 | [post] a [implicit borrow] | main.rs:175:5:175:5 | [post] a |
|
||||
| main.rs:191:24:191:24 | s | main.rs:191:18:191:24 | FormatArgsExpr |
|
||||
| main.rs:196:9:196:9 | [post] a [implicit borrow] | main.rs:196:9:196:9 | [post] a |
|
||||
| main.rs:197:9:197:9 | [post] a [implicit borrow] | main.rs:197:9:197:9 | [post] a |
|
||||
| main.rs:198:9:198:9 | [post] a [implicit borrow] | main.rs:198:9:198:9 | [SSA] a |
|
||||
| main.rs:199:9:199:9 | [post] a [implicit borrow] | main.rs:199:9:199:9 | [SSA] a |
|
||||
| main.rs:191:9:191:9 | i | main.rs:191:9:191:18 | i as usize |
|
||||
| main.rs:195:24:195:24 | s | main.rs:195:18:195:24 | FormatArgsExpr |
|
||||
| main.rs:201:21:201:21 | a | main.rs:201:21:201:23 | a.0 |
|
||||
| main.rs:203:9:203:9 | [post] a [implicit borrow] | main.rs:203:9:203:9 | [post] a |
|
||||
| main.rs:204:9:204:9 | [post] a [implicit borrow] | main.rs:204:9:204:9 | [post] a |
|
||||
| main.rs:206:21:206:21 | a | main.rs:206:21:206:23 | a.0 |
|
||||
| main.rs:209:9:209:9 | [post] a [implicit borrow] | main.rs:209:9:209:9 | [SSA] a |
|
||||
| main.rs:210:9:210:9 | [post] a [implicit borrow] | main.rs:210:9:210:9 | [SSA] a |
|
||||
| main.rs:212:21:212:21 | a | main.rs:212:21:212:23 | a.0 |
|
||||
| main.rs:215:9:215:9 | [post] a [implicit borrow] | main.rs:215:9:215:9 | [SSA] a |
|
||||
| main.rs:216:9:216:9 | [post] a [implicit borrow] | main.rs:216:9:216:9 | [SSA] a |
|
||||
| main.rs:218:21:218:21 | a | main.rs:218:21:218:23 | a.0 |
|
||||
| main.rs:221:9:221:9 | [post] a [implicit borrow] | main.rs:221:9:221:9 | [SSA] a |
|
||||
| main.rs:223:21:223:21 | a | main.rs:223:21:223:23 | a.0 |
|
||||
| main.rs:228:21:228:22 | v1 | main.rs:228:21:228:24 | v1.0 |
|
||||
| main.rs:230:21:230:22 | v2 | main.rs:230:21:230:24 | v2.0 |
|
||||
| main.rs:232:21:232:22 | v3 | main.rs:232:21:232:24 | v3.0 |
|
||||
| main.rs:234:21:234:22 | v4 | main.rs:234:21:234:24 | v4.0 |
|
||||
| main.rs:236:21:236:22 | v5 | main.rs:236:21:236:24 | v5.0 |
|
||||
| main.rs:238:21:238:22 | v6 | main.rs:238:21:238:24 | v6.0 |
|
||||
| main.rs:240:21:240:22 | v7 | main.rs:240:21:240:24 | v7.0 |
|
||||
| main.rs:242:21:242:22 | v8 | main.rs:242:21:242:24 | v8.0 |
|
||||
|
||||
@@ -132,16 +132,20 @@ edges
|
||||
| main.rs:175:21:175:29 | source(...) | main.rs:175:5:175:5 | [post] a | provenance | MaD:19 |
|
||||
| main.rs:178:10:178:18 | source(...) | main.rs:178:10:178:24 | ... .neg() | provenance | MaD:9 |
|
||||
| main.rs:179:10:179:18 | source(...) | main.rs:179:10:179:24 | ... .not() | provenance | MaD:20 |
|
||||
| main.rs:196:9:196:9 | [post] a | main.rs:197:9:197:9 | a | provenance | |
|
||||
| main.rs:196:9:196:9 | [post] a | main.rs:198:9:198:9 | a | provenance | |
|
||||
| main.rs:196:22:196:30 | source(...) | main.rs:196:9:196:9 | [post] a | provenance | MaD:3 |
|
||||
| main.rs:196:22:196:30 | source(...) | main.rs:196:9:196:9 | [post] a | provenance | MaD:4 |
|
||||
| main.rs:197:9:197:9 | [post] a | main.rs:198:9:198:9 | a | provenance | |
|
||||
| main.rs:197:9:197:9 | a | main.rs:197:9:197:9 | [post] a | provenance | MaD:4 |
|
||||
| main.rs:198:9:198:9 | a | main.rs:199:9:199:9 | a | provenance | MaD:4 |
|
||||
| main.rs:198:14:198:22 | source(...) | main.rs:199:9:199:9 | a | provenance | MaD:3 |
|
||||
| main.rs:198:14:198:22 | source(...) | main.rs:199:9:199:9 | a | provenance | MaD:4 |
|
||||
| main.rs:199:9:199:9 | a | main.rs:200:14:200:14 | a | provenance | MaD:4 |
|
||||
| main.rs:203:9:203:9 | [post] a | main.rs:204:9:204:9 | a | provenance | |
|
||||
| main.rs:203:9:203:9 | [post] a | main.rs:205:14:205:14 | a | provenance | |
|
||||
| main.rs:203:22:203:30 | source(...) | main.rs:203:9:203:9 | [post] a | provenance | MaD:3 |
|
||||
| main.rs:203:22:203:30 | source(...) | main.rs:203:9:203:9 | [post] a | provenance | MaD:4 |
|
||||
| main.rs:204:9:204:9 | [post] a | main.rs:205:14:205:14 | a | provenance | |
|
||||
| main.rs:204:9:204:9 | a | main.rs:204:9:204:9 | [post] a | provenance | MaD:4 |
|
||||
| main.rs:208:9:208:9 | a | main.rs:209:9:209:9 | a | provenance | |
|
||||
| main.rs:208:13:208:21 | source(...) | main.rs:208:9:208:9 | a | provenance | |
|
||||
| main.rs:209:9:209:9 | a | main.rs:210:9:210:9 | a | provenance | MaD:4 |
|
||||
| main.rs:209:14:209:22 | source(...) | main.rs:210:9:210:9 | a | provenance | MaD:3 |
|
||||
| main.rs:209:14:209:22 | source(...) | main.rs:210:9:210:9 | a | provenance | MaD:4 |
|
||||
| main.rs:210:9:210:9 | a | main.rs:211:14:211:14 | a | provenance | MaD:4 |
|
||||
| main.rs:221:15:221:30 | source_usize(...) | main.rs:222:14:222:14 | a | provenance | MaD:23 |
|
||||
| main.rs:221:15:221:30 | source_usize(...) | main.rs:222:14:222:14 | a | provenance | MaD:24 |
|
||||
nodes
|
||||
| main.rs:12:9:12:9 | a | semmle.label | a |
|
||||
| main.rs:12:13:12:22 | source(...) | semmle.label | source(...) |
|
||||
@@ -266,14 +270,19 @@ nodes
|
||||
| main.rs:178:10:178:24 | ... .neg() | semmle.label | ... .neg() |
|
||||
| main.rs:179:10:179:18 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:179:10:179:24 | ... .not() | semmle.label | ... .not() |
|
||||
| main.rs:196:9:196:9 | [post] a | semmle.label | [post] a |
|
||||
| main.rs:196:22:196:30 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:197:9:197:9 | [post] a | semmle.label | [post] a |
|
||||
| main.rs:197:9:197:9 | a | semmle.label | a |
|
||||
| main.rs:198:9:198:9 | a | semmle.label | a |
|
||||
| main.rs:198:14:198:22 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:199:9:199:9 | a | semmle.label | a |
|
||||
| main.rs:200:14:200:14 | a | semmle.label | a |
|
||||
| main.rs:203:9:203:9 | [post] a | semmle.label | [post] a |
|
||||
| main.rs:203:22:203:30 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:204:9:204:9 | [post] a | semmle.label | [post] a |
|
||||
| main.rs:204:9:204:9 | a | semmle.label | a |
|
||||
| main.rs:205:14:205:14 | a | semmle.label | a |
|
||||
| main.rs:208:9:208:9 | a | semmle.label | a |
|
||||
| main.rs:208:13:208:21 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:209:9:209:9 | a | semmle.label | a |
|
||||
| main.rs:209:14:209:22 | source(...) | semmle.label | source(...) |
|
||||
| main.rs:210:9:210:9 | a | semmle.label | a |
|
||||
| main.rs:211:14:211:14 | a | semmle.label | a |
|
||||
| main.rs:221:15:221:30 | source_usize(...) | semmle.label | source_usize(...) |
|
||||
| main.rs:222:14:222:14 | a | semmle.label | a |
|
||||
subpaths
|
||||
testFailures
|
||||
#select
|
||||
@@ -325,5 +334,7 @@ testFailures
|
||||
| main.rs:176:10:176:10 | a | main.rs:175:21:175:29 | source(...) | main.rs:176:10:176:10 | a | $@ | main.rs:175:21:175:29 | source(...) | source(...) |
|
||||
| main.rs:178:10:178:24 | ... .neg() | main.rs:178:10:178:18 | source(...) | main.rs:178:10:178:24 | ... .neg() | $@ | main.rs:178:10:178:18 | source(...) | source(...) |
|
||||
| main.rs:179:10:179:24 | ... .not() | main.rs:179:10:179:18 | source(...) | main.rs:179:10:179:24 | ... .not() | $@ | main.rs:179:10:179:18 | source(...) | source(...) |
|
||||
| main.rs:200:14:200:14 | a | main.rs:196:22:196:30 | source(...) | main.rs:200:14:200:14 | a | $@ | main.rs:196:22:196:30 | source(...) | source(...) |
|
||||
| main.rs:200:14:200:14 | a | main.rs:198:14:198:22 | source(...) | main.rs:200:14:200:14 | a | $@ | main.rs:198:14:198:22 | source(...) | source(...) |
|
||||
| main.rs:205:14:205:14 | a | main.rs:203:22:203:30 | source(...) | main.rs:205:14:205:14 | a | $@ | main.rs:203:22:203:30 | source(...) | source(...) |
|
||||
| main.rs:211:14:211:14 | a | main.rs:208:13:208:21 | source(...) | main.rs:211:14:211:14 | a | $@ | main.rs:208:13:208:21 | source(...) | source(...) |
|
||||
| main.rs:211:14:211:14 | a | main.rs:209:14:209:22 | source(...) | main.rs:211:14:211:14 | a | $@ | main.rs:209:14:209:22 | source(...) | source(...) |
|
||||
| main.rs:222:14:222:14 | a | main.rs:221:15:221:30 | source_usize(...) | main.rs:222:14:222:14 | a | $@ | main.rs:221:15:221:30 | source_usize(...) | source_usize(...) |
|
||||
|
||||
@@ -181,24 +181,65 @@ fn std_ops() {
|
||||
|
||||
mod wrapping {
|
||||
use std::num::Wrapping;
|
||||
use std::ops::AddAssign;
|
||||
use std::ops::{Add, AddAssign, Neg, Not};
|
||||
|
||||
fn source(i: i64) -> Wrapping<i64> {
|
||||
Wrapping(i)
|
||||
}
|
||||
|
||||
fn source_usize(i: i64) -> usize {
|
||||
i as usize
|
||||
}
|
||||
|
||||
fn sink(s: Wrapping<i64>) {
|
||||
println!("{}", s);
|
||||
}
|
||||
|
||||
pub fn wrapping() {
|
||||
let mut a: Wrapping<i64> = Wrapping(crate::source(1));
|
||||
sink(a); // $ MISSING: hasTaintFlow=1
|
||||
crate::sink(a.0); // $ MISSING: hasTaintFlow=1
|
||||
|
||||
a.add_assign(source(2));
|
||||
a.add_assign(Wrapping(crate::source(3)));
|
||||
a += source(4);
|
||||
a += std::num::Wrapping(crate::source(5));
|
||||
sink(a); // $ hasTaintFlow=2 hasTaintFlow=4 MISSING: hasTaintFlow=1 hasTaintFlow=3 hasTaintFlow=5
|
||||
crate::sink(a.0); // $ MISSING: hasTaintFlow=1 hasTaintFlow=2 hasTaintFlow=3 hasTaintFlow=4 hasTaintFlow=5
|
||||
sink(a); // $ hasTaintFlow=2 MISSING: hasTaintFlow=1 hasTaintFlow=3
|
||||
crate::sink(a.0); // $ MISSING: hasTaintFlow=1 hasTaintFlow=2 hasTaintFlow=3
|
||||
|
||||
a = source(4);
|
||||
a += source(5);
|
||||
a += std::num::Wrapping(crate::source(6));
|
||||
sink(a); // $ hasTaintFlow=4 hasTaintFlow=5 MISSING: hasTaintFlow=6
|
||||
crate::sink(a.0); // $ MISSING: hasTaintFlow=4 hasTaintFlow=5 hasTaintFlow=6
|
||||
|
||||
a = source(7);
|
||||
a &= source(8);
|
||||
a &= Wrapping(crate::source(9));
|
||||
sink(a); // $ MISSING: hasTaintFlow=7 hasTaintFlow=8 hasTaintFlow=9
|
||||
crate::sink(a.0); // $ MISSING: hasTaintFlow=7 hasTaintFlow=8 hasTaintFlow=9
|
||||
|
||||
a = source(10);
|
||||
a <<= source_usize(11);
|
||||
sink(a); // $ hasTaintFlow=11 MISSING: hasTaintFlow=10
|
||||
crate::sink(a.0); // $ MISSING: hasTaintFlow=10 hasTaintFlow=11
|
||||
|
||||
let b: Wrapping<i64> = Wrapping(crate::source(1));
|
||||
let c: Wrapping<i64> = Wrapping(crate::source(2));
|
||||
let v1 = b + c;
|
||||
crate::sink(v1.0); // $ MISSING: hasTaintFlow=1 hasTaintFlow=2
|
||||
let v2 = b.add(c);
|
||||
crate::sink(v2.0); // $ MISSING: hasTaintFlow=1 hasTaintFlow=2
|
||||
let v3 = -b;
|
||||
crate::sink(v3.0); // $ MISSING: hasTaintFlow=1
|
||||
let v4 = b.neg();
|
||||
crate::sink(v4.0); // $ MISSING: hasTaintFlow=1
|
||||
let v5 = !b;
|
||||
crate::sink(v5.0); // $ MISSING: hasTaintFlow=1
|
||||
let v6 = b.not();
|
||||
crate::sink(v6.0); // $ MISSING: hasTaintFlow=1
|
||||
let v7 = b & c;
|
||||
crate::sink(v7.0); // $ MISSING: hasTaintFlow=1 hasTaintFlow=2
|
||||
let v8 = b << source_usize(3);
|
||||
crate::sink(v8.0); // $ MISSING: hasTaintFlow=1 hasTaintFlow=3
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user