Merge pull request #20749 from github/copilot/add-secure-cookie-test-cases

Add test coverage for actix-web, poem, and http-types cookie secure attribute
This commit is contained in:
Geoffrey White
2025-11-11 09:26:26 +00:00
committed by GitHub
8 changed files with 3103 additions and 326 deletions

View File

@@ -0,0 +1,4 @@
---
category: minorAnalysis
---
* Added models for cookie methods in the `poem` crate.

View File

@@ -0,0 +1,22 @@
extensions:
- addsTo:
pack: codeql/rust-all
extensible: sinkModel
data:
- ["<poem::web::cookie::CookieJar>::add", "Argument[0]", "cookie-use", "manual"]
- ["<poem::web::cookie::SignedCookieJar>::add", "Argument[0]", "cookie-use", "manual"]
- ["<poem::web::cookie::PrivateCookieJar>::add", "Argument[0]", "cookie-use", "manual"]
- ["<poem::session::server_session::ServerSession>::new", "Argument[0]", "cookie-use", "manual"]
- addsTo:
pack: codeql/rust-all
extensible: summaryModel
data:
- ["<poem::web::cookie::Cookie>::set_secure", "Argument[self].OptionalBarrier[cookie-secure-arg0]", "Argument[self]", "taint", "manual"]
- ["<poem::session::cookie_config::CookieConfig>::secure", "Argument[self].OptionalBarrier[cookie-secure-arg0]", "ReturnValue", "taint", "manual"]
- ["<poem::session::cookie_config::CookieConfig>::partitioned", "Argument[self].OptionalBarrier[cookie-partitioned-arg0]", "ReturnValue", "taint", "manual"]
- ["<poem::session::cookie_config::CookieConfig>::name", "Argument[self]", "ReturnValue", "taint", "manual"]
- ["<poem::session::cookie_config::CookieConfig>::path", "Argument[self]", "ReturnValue", "taint", "manual"]
- ["<poem::session::cookie_config::CookieConfig>::domain", "Argument[self]", "ReturnValue", "taint", "manual"]
- ["<poem::session::cookie_config::CookieConfig>::http_only", "Argument[self]", "ReturnValue", "taint", "manual"]
- ["<poem::session::cookie_config::CookieConfig>::same_site", "Argument[self]", "ReturnValue", "taint", "manual"]
- ["<poem::session::cookie_config::CookieConfig>::max_age", "Argument[self]", "ReturnValue", "taint", "manual"]

View File

@@ -39,9 +39,9 @@ module InsecureCookieConfig implements DataFlow::ConfigSig {
node instanceof Sink node instanceof Sink
} }
predicate isBarrier(DataFlow::Node node) { predicate isBarrierIn(DataFlow::Node node) {
// setting the 'secure' attribute to true // setting the 'secure' attribute
cookieSetNode(node, "secure", true) cookieSetNode(node, "secure", _)
or or
node instanceof Barrier node instanceof Barrier
} }

File diff suppressed because it is too large Load Diff

View File

@@ -52,3 +52,28 @@
| main.rs:180:29:180:66 | ...::build(...) | secure | true | | main.rs:180:29:180:66 | ...::build(...) | secure | true |
| main.rs:186:9:186:22 | [SSA] secure_cookie2 | secure | true | | main.rs:186:9:186:22 | [SSA] secure_cookie2 | secure | true |
| main.rs:186:9:186:22 | secure_cookie2 | secure | true | | main.rs:186:9:186:22 | secure_cookie2 | secure | true |
| main.rs:197:5:197:39 | ...::build(...) | secure | false |
| main.rs:198:5:198:39 | ...::build(...) | secure | false |
| main.rs:201:5:201:11 | [SSA] cookie1 | secure | false |
| main.rs:201:5:201:11 | cookie1 | secure | false |
| main.rs:205:5:205:39 | ...::build(...) | secure | true |
| main.rs:208:5:208:11 | [SSA] cookie2 | secure | true |
| main.rs:208:5:208:11 | cookie2 | secure | true |
| main.rs:218:5:218:11 | [SSA] cookie2 | secure | false |
| main.rs:218:5:218:11 | cookie2 | secure | false |
| main.rs:228:5:228:11 | [SSA] cookie1 | secure | false |
| main.rs:228:5:228:11 | cookie1 | secure | false |
| main.rs:233:5:233:11 | [SSA] cookie2 | secure | true |
| main.rs:233:5:233:11 | cookie2 | secure | true |
| main.rs:241:29:241:62 | ...::new(...) | secure | false |
| main.rs:244:30:244:63 | ...::new(...) | secure | false |
| main.rs:247:30:247:63 | ...::new(...) | secure | true |
| main.rs:259:5:259:43 | ...::build(...) | secure | false |
| main.rs:260:5:260:43 | ...::build(...) | secure | false |
| main.rs:263:5:263:11 | [SSA] cookie1 | secure | false |
| main.rs:263:5:263:11 | cookie1 | secure | false |
| main.rs:267:5:267:43 | ...::build(...) | secure | true |
| main.rs:270:5:270:11 | [SSA] cookie2 | secure | true |
| main.rs:270:5:270:11 | cookie2 | secure | true |
| main.rs:280:5:280:11 | [SSA] cookie2 | secure | false |
| main.rs:280:5:280:11 | cookie2 | secure | false |

View File

@@ -1,48 +1,26 @@
#select #select
| main.rs:8:66:8:70 | build | main.rs:8:19:8:31 | ...::build | main.rs:8:66:8:70 | build | Cookie attribute 'Secure' is not set to true. |
| main.rs:8:66:8:70 | build | main.rs:8:19:8:50 | ...::build(...) | main.rs:8:66:8:70 | build | Cookie attribute 'Secure' is not set to true. | | main.rs:8:66:8:70 | build | main.rs:8:19:8:50 | ...::build(...) | main.rs:8:66:8:70 | build | Cookie attribute 'Secure' is not set to true. |
| main.rs:16:52:16:56 | build | main.rs:16:19:16:31 | ...::build | main.rs:16:52:16:56 | build | Cookie attribute 'Secure' is not set to true. | | main.rs:16:52:16:56 | build | main.rs:16:19:16:31 | ...::build | main.rs:16:52:16:56 | build | Cookie attribute 'Secure' is not set to true. |
| main.rs:20:56:20:60 | build | main.rs:20:5:20:17 | ...::build | main.rs:20:56:20:60 | build | Cookie attribute 'Secure' is not set to true. |
| main.rs:20:56:20:60 | build | main.rs:20:5:20:36 | ...::build(...) | main.rs:20:56:20:60 | build | Cookie attribute 'Secure' is not set to true. | | main.rs:20:56:20:60 | build | main.rs:20:5:20:36 | ...::build(...) | main.rs:20:56:20:60 | build | Cookie attribute 'Secure' is not set to true. |
| main.rs:21:57:21:61 | build | main.rs:21:5:21:17 | ...::build | main.rs:21:57:21:61 | build | Cookie attribute 'Secure' is not set to true. |
| main.rs:21:57:21:61 | build | main.rs:21:5:21:36 | ...::build(...) | main.rs:21:57:21:61 | build | Cookie attribute 'Secure' is not set to true. | | main.rs:21:57:21:61 | build | main.rs:21:5:21:36 | ...::build(...) | main.rs:21:57:21:61 | build | Cookie attribute 'Secure' is not set to true. |
| main.rs:25:54:25:58 | build | main.rs:25:5:25:17 | ...::build | main.rs:25:54:25:58 | build | Cookie attribute 'Secure' is not set to true. |
| main.rs:25:54:25:58 | build | main.rs:25:5:25:36 | ...::build(...) | main.rs:25:54:25:58 | build | Cookie attribute 'Secure' is not set to true. | | main.rs:25:54:25:58 | build | main.rs:25:5:25:36 | ...::build(...) | main.rs:25:54:25:58 | build | Cookie attribute 'Secure' is not set to true. |
| main.rs:26:52:26:56 | build | main.rs:26:5:26:17 | ...::build | main.rs:26:52:26:56 | build | Cookie attribute 'Secure' is not set to true. |
| main.rs:26:52:26:56 | build | main.rs:26:5:26:36 | ...::build(...) | main.rs:26:52:26:56 | build | Cookie attribute 'Secure' is not set to true. | | main.rs:26:52:26:56 | build | main.rs:26:5:26:36 | ...::build(...) | main.rs:26:52:26:56 | build | Cookie attribute 'Secure' is not set to true. |
| main.rs:27:53:27:57 | build | main.rs:27:5:27:17 | ...::build | main.rs:27:53:27:57 | build | Cookie attribute 'Secure' is not set to true. |
| main.rs:27:53:27:57 | build | main.rs:27:5:27:36 | ...::build(...) | main.rs:27:53:27:57 | build | Cookie attribute 'Secure' is not set to true. | | main.rs:27:53:27:57 | build | main.rs:27:5:27:36 | ...::build(...) | main.rs:27:53:27:57 | build | Cookie attribute 'Secure' is not set to true. |
| main.rs:28:62:28:66 | build | main.rs:28:5:28:17 | ...::build | main.rs:28:62:28:66 | build | Cookie attribute 'Secure' is not set to true. |
| main.rs:28:62:28:66 | build | main.rs:28:5:28:36 | ...::build(...) | main.rs:28:62:28:66 | build | Cookie attribute 'Secure' is not set to true. | | main.rs:28:62:28:66 | build | main.rs:28:5:28:36 | ...::build(...) | main.rs:28:62:28:66 | build | Cookie attribute 'Secure' is not set to true. |
| main.rs:29:62:29:66 | build | main.rs:29:5:29:17 | ...::build | main.rs:29:62:29:66 | build | Cookie attribute 'Secure' is not set to true. |
| main.rs:29:62:29:66 | build | main.rs:29:5:29:36 | ...::build(...) | main.rs:29:62:29:66 | build | Cookie attribute 'Secure' is not set to true. | | main.rs:29:62:29:66 | build | main.rs:29:5:29:36 | ...::build(...) | main.rs:29:62:29:66 | build | Cookie attribute 'Secure' is not set to true. |
| main.rs:33:60:33:64 | build | main.rs:33:9:33:21 | ...::build | main.rs:33:60:33:64 | build | Cookie attribute 'Secure' is not set to true. |
| main.rs:33:60:33:64 | build | main.rs:33:9:33:40 | ...::build(...) | main.rs:33:60:33:64 | build | Cookie attribute 'Secure' is not set to true. | | main.rs:33:60:33:64 | build | main.rs:33:9:33:40 | ...::build(...) | main.rs:33:60:33:64 | build | Cookie attribute 'Secure' is not set to true. |
| main.rs:35:60:35:64 | build | main.rs:35:9:35:21 | ...::build | main.rs:35:60:35:64 | build | Cookie attribute 'Secure' is not set to true. |
| main.rs:35:60:35:64 | build | main.rs:35:9:35:40 | ...::build(...) | main.rs:35:60:35:64 | build | Cookie attribute 'Secure' is not set to true. | | main.rs:35:60:35:64 | build | main.rs:35:9:35:40 | ...::build(...) | main.rs:35:60:35:64 | build | Cookie attribute 'Secure' is not set to true. |
| main.rs:39:55:39:59 | build | main.rs:39:5:39:22 | ...::new | main.rs:39:55:39:59 | build | Cookie attribute 'Secure' is not set to true. |
| main.rs:39:55:39:59 | build | main.rs:39:5:39:39 | ...::new(...) | main.rs:39:55:39:59 | build | Cookie attribute 'Secure' is not set to true. | | main.rs:39:55:39:59 | build | main.rs:39:5:39:39 | ...::new(...) | main.rs:39:55:39:59 | build | Cookie attribute 'Secure' is not set to true. |
| main.rs:40:66:40:70 | build | main.rs:40:5:40:17 | ...::build | main.rs:40:66:40:70 | build | Cookie attribute 'Secure' is not set to true. |
| main.rs:40:66:40:70 | build | main.rs:40:5:40:50 | ... .expires(...) | main.rs:40:66:40:70 | build | Cookie attribute 'Secure' is not set to true. | | main.rs:40:66:40:70 | build | main.rs:40:5:40:50 | ... .expires(...) | main.rs:40:66:40:70 | build | Cookie attribute 'Secure' is not set to true. |
| main.rs:41:95:41:99 | build | main.rs:41:5:41:17 | ...::build | main.rs:41:95:41:99 | build | Cookie attribute 'Secure' is not set to true. |
| main.rs:41:95:41:99 | build | main.rs:41:5:41:79 | ... .max_age(...) | main.rs:41:95:41:99 | build | Cookie attribute 'Secure' is not set to true. | | main.rs:41:95:41:99 | build | main.rs:41:5:41:79 | ... .max_age(...) | main.rs:41:95:41:99 | build | Cookie attribute 'Secure' is not set to true. |
| main.rs:42:74:42:78 | build | main.rs:42:5:42:17 | ...::build | main.rs:42:74:42:78 | build | Cookie attribute 'Secure' is not set to true. |
| main.rs:42:74:42:78 | build | main.rs:42:5:42:58 | ... .domain(...) | main.rs:42:74:42:78 | build | Cookie attribute 'Secure' is not set to true. | | main.rs:42:74:42:78 | build | main.rs:42:5:42:58 | ... .domain(...) | main.rs:42:74:42:78 | build | Cookie attribute 'Secure' is not set to true. |
| main.rs:43:62:43:66 | build | main.rs:43:5:43:17 | ...::build | main.rs:43:62:43:66 | build | Cookie attribute 'Secure' is not set to true. |
| main.rs:43:62:43:66 | build | main.rs:43:5:43:46 | ... .path(...) | main.rs:43:62:43:66 | build | Cookie attribute 'Secure' is not set to true. | | main.rs:43:62:43:66 | build | main.rs:43:5:43:46 | ... .path(...) | main.rs:43:62:43:66 | build | Cookie attribute 'Secure' is not set to true. |
| main.rs:44:68:44:72 | build | main.rs:44:5:44:17 | ...::build | main.rs:44:68:44:72 | build | Cookie attribute 'Secure' is not set to true. |
| main.rs:44:68:44:72 | build | main.rs:44:5:44:52 | ... .http_only(...) | main.rs:44:68:44:72 | build | Cookie attribute 'Secure' is not set to true. | | main.rs:44:68:44:72 | build | main.rs:44:5:44:52 | ... .http_only(...) | main.rs:44:68:44:72 | build | Cookie attribute 'Secure' is not set to true. |
| main.rs:45:88:45:92 | build | main.rs:45:5:45:17 | ...::build | main.rs:45:88:45:92 | build | Cookie attribute 'Secure' is not set to true. |
| main.rs:45:88:45:92 | build | main.rs:45:5:45:72 | ... .same_site(...) | main.rs:45:88:45:92 | build | Cookie attribute 'Secure' is not set to true. | | main.rs:45:88:45:92 | build | main.rs:45:5:45:72 | ... .same_site(...) | main.rs:45:88:45:92 | build | Cookie attribute 'Secure' is not set to true. |
| main.rs:46:64:46:68 | build | main.rs:46:5:46:17 | ...::build | main.rs:46:64:46:68 | build | Cookie attribute 'Secure' is not set to true. |
| main.rs:46:64:46:68 | build | main.rs:46:5:46:48 | ... .permanent() | main.rs:46:64:46:68 | build | Cookie attribute 'Secure' is not set to true. | | main.rs:46:64:46:68 | build | main.rs:46:5:46:48 | ... .permanent() | main.rs:46:64:46:68 | build | Cookie attribute 'Secure' is not set to true. |
| main.rs:47:62:47:66 | build | main.rs:47:5:47:17 | ...::build | main.rs:47:62:47:66 | build | Cookie attribute 'Secure' is not set to true. |
| main.rs:47:62:47:66 | build | main.rs:47:5:47:46 | ... .removal() | main.rs:47:62:47:66 | build | Cookie attribute 'Secure' is not set to true. | | main.rs:47:62:47:66 | build | main.rs:47:5:47:46 | ... .removal() | main.rs:47:62:47:66 | build | Cookie attribute 'Secure' is not set to true. |
| main.rs:48:52:48:57 | finish | main.rs:48:5:48:17 | ...::build | main.rs:48:52:48:57 | finish | Cookie attribute 'Secure' is not set to true. |
| main.rs:48:52:48:57 | finish | main.rs:48:5:48:36 | ...::build(...) | main.rs:48:52:48:57 | finish | Cookie attribute 'Secure' is not set to true. | | main.rs:48:52:48:57 | finish | main.rs:48:5:48:36 | ...::build(...) | main.rs:48:52:48:57 | finish | Cookie attribute 'Secure' is not set to true. |
| main.rs:49:41:49:45 | build | main.rs:49:5:49:17 | ...::build | main.rs:49:41:49:45 | build | Cookie attribute 'Secure' is not set to true. |
| main.rs:49:41:49:45 | build | main.rs:49:5:49:25 | ...::build(...) | main.rs:49:41:49:45 | build | Cookie attribute 'Secure' is not set to true. | | main.rs:49:41:49:45 | build | main.rs:49:5:49:25 | ...::build(...) | main.rs:49:41:49:45 | build | Cookie attribute 'Secure' is not set to true. |
| main.rs:50:56:50:60 | build | main.rs:50:5:50:17 | ...::build | main.rs:50:56:50:60 | build | Cookie attribute 'Secure' is not set to true. |
| main.rs:50:56:50:60 | build | main.rs:50:5:50:40 | ...::build(...) | main.rs:50:56:50:60 | build | Cookie attribute 'Secure' is not set to true. | | main.rs:50:56:50:60 | build | main.rs:50:5:50:40 | ...::build(...) | main.rs:50:56:50:60 | build | Cookie attribute 'Secure' is not set to true. |
| main.rs:53:65:53:69 | build | main.rs:53:5:53:49 | ... .secure(...) | main.rs:53:65:53:69 | build | Cookie attribute 'Secure' is not set to true. | | main.rs:53:65:53:69 | build | main.rs:53:5:53:49 | ... .secure(...) | main.rs:53:65:53:69 | build | Cookie attribute 'Secure' is not set to true. |
| main.rs:59:9:59:11 | add | main.rs:58:17:58:27 | ...::new | main.rs:59:9:59:11 | add | Cookie attribute 'Secure' is not set to true. | | main.rs:59:9:59:11 | add | main.rs:58:17:58:27 | ...::new | main.rs:59:9:59:11 | add | Cookie attribute 'Secure' is not set to true. |
@@ -52,7 +30,6 @@
| main.rs:69:16:69:18 | add | main.rs:68:17:68:29 | ...::named | main.rs:69:16:69:18 | add | Cookie attribute 'Secure' is not set to true. | | main.rs:69:16:69:18 | add | main.rs:68:17:68:29 | ...::named | main.rs:69:16:69:18 | add | Cookie attribute 'Secure' is not set to true. |
| main.rs:70:16:70:27 | add_original | main.rs:63:5:63:5 | [SSA] a | main.rs:70:16:70:27 | add_original | Cookie attribute 'Secure' is not set to true. | | main.rs:70:16:70:27 | add_original | main.rs:63:5:63:5 | [SSA] a | main.rs:70:16:70:27 | add_original | Cookie attribute 'Secure' is not set to true. |
| main.rs:70:16:70:27 | add_original | main.rs:63:5:63:5 | a | main.rs:70:16:70:27 | add_original | Cookie attribute 'Secure' is not set to true. | | main.rs:70:16:70:27 | add_original | main.rs:63:5:63:5 | a | main.rs:70:16:70:27 | add_original | Cookie attribute 'Secure' is not set to true. |
| main.rs:72:16:72:18 | add | main.rs:68:17:68:29 | ...::named | main.rs:72:16:72:18 | add | Cookie attribute 'Secure' is not set to true. |
| main.rs:72:16:72:18 | add | main.rs:71:5:71:5 | [SSA] b | main.rs:72:16:72:18 | add | Cookie attribute 'Secure' is not set to true. | | main.rs:72:16:72:18 | add | main.rs:71:5:71:5 | [SSA] b | main.rs:72:16:72:18 | add | Cookie attribute 'Secure' is not set to true. |
| main.rs:72:16:72:18 | add | main.rs:71:5:71:5 | b | main.rs:72:16:72:18 | add | Cookie attribute 'Secure' is not set to true. | | main.rs:72:16:72:18 | add | main.rs:71:5:71:5 | b | main.rs:72:16:72:18 | add | Cookie attribute 'Secure' is not set to true. |
| main.rs:78:17:78:19 | add | main.rs:77:17:77:28 | ...::from | main.rs:78:17:78:19 | add | Cookie attribute 'Secure' is not set to true. | | main.rs:78:17:78:19 | add | main.rs:77:17:77:28 | ...::from | main.rs:78:17:78:19 | add | Cookie attribute 'Secure' is not set to true. |
@@ -78,242 +55,298 @@
| main.rs:166:13:166:18 | insert | main.rs:155:13:155:41 | ...::new | main.rs:166:13:166:18 | insert | Cookie attribute 'Secure' is not set to true. | | main.rs:166:13:166:18 | insert | main.rs:155:13:155:41 | ...::new | main.rs:166:13:166:18 | insert | Cookie attribute 'Secure' is not set to true. |
| main.rs:167:13:167:18 | insert | main.rs:155:13:155:41 | ...::new | main.rs:167:13:167:18 | insert | Cookie attribute 'Secure' is not set to true. | | main.rs:167:13:167:18 | insert | main.rs:155:13:155:41 | ...::new | main.rs:167:13:167:18 | insert | Cookie attribute 'Secure' is not set to true. |
| main.rs:173:61:173:65 | build | main.rs:173:22:173:34 | ...::build | main.rs:173:61:173:65 | build | Cookie attribute 'Secure' is not set to true. | | main.rs:173:61:173:65 | build | main.rs:173:22:173:34 | ...::build | main.rs:173:61:173:65 | build | Cookie attribute 'Secure' is not set to true. |
| main.rs:197:55:197:60 | finish | main.rs:197:5:197:39 | ...::build(...) | main.rs:197:55:197:60 | finish | Cookie attribute 'Secure' is not set to true. |
| main.rs:198:65:198:70 | finish | main.rs:198:5:198:39 | ...::build(...) | main.rs:198:65:198:70 | finish | Cookie attribute 'Secure' is not set to true. |
| main.rs:202:9:202:11 | add | main.rs:201:5:201:11 | [SSA] cookie1 | main.rs:202:9:202:11 | add | Cookie attribute 'Secure' is not set to true. |
| main.rs:202:9:202:11 | add | main.rs:201:5:201:11 | cookie1 | main.rs:202:9:202:11 | add | Cookie attribute 'Secure' is not set to true. |
| main.rs:212:41:212:46 | finish | main.rs:212:5:212:22 | ...::build | main.rs:212:41:212:46 | finish | Cookie attribute 'Secure' is not set to true. |
| main.rs:215:9:215:11 | add | main.rs:214:19:214:34 | ...::new | main.rs:215:9:215:11 | add | Cookie attribute 'Secure' is not set to true. |
| main.rs:219:9:219:11 | add | main.rs:218:5:218:11 | [SSA] cookie2 | main.rs:219:9:219:11 | add | Cookie attribute 'Secure' is not set to true. |
| main.rs:219:9:219:11 | add | main.rs:218:5:218:11 | cookie2 | main.rs:219:9:219:11 | add | Cookie attribute 'Secure' is not set to true. |
| main.rs:229:9:229:11 | add | main.rs:228:5:228:11 | [SSA] cookie1 | main.rs:229:9:229:11 | add | Cookie attribute 'Secure' is not set to true. |
| main.rs:229:9:229:11 | add | main.rs:228:5:228:11 | cookie1 | main.rs:229:9:229:11 | add | Cookie attribute 'Secure' is not set to true. |
| main.rs:242:9:242:41 | ...::new | main.rs:241:29:241:62 | ...::new(...) | main.rs:242:9:242:41 | ...::new | Cookie attribute 'Secure' is not set to true. |
| main.rs:245:9:245:41 | ...::new | main.rs:244:30:244:63 | ...::new(...) | main.rs:245:9:245:41 | ...::new | Cookie attribute 'Secure' is not set to true. |
| main.rs:259:59:259:64 | finish | main.rs:259:5:259:43 | ...::build(...) | main.rs:259:59:259:64 | finish | Cookie attribute 'Secure' is not set to true. |
| main.rs:260:69:260:74 | finish | main.rs:260:5:260:43 | ...::build(...) | main.rs:260:69:260:74 | finish | Cookie attribute 'Secure' is not set to true. |
| main.rs:264:9:264:11 | add | main.rs:263:5:263:11 | [SSA] cookie1 | main.rs:264:9:264:11 | add | Cookie attribute 'Secure' is not set to true. |
| main.rs:264:9:264:11 | add | main.rs:263:5:263:11 | cookie1 | main.rs:264:9:264:11 | add | Cookie attribute 'Secure' is not set to true. |
| main.rs:274:45:274:50 | finish | main.rs:274:5:274:26 | ...::build | main.rs:274:45:274:50 | finish | Cookie attribute 'Secure' is not set to true. |
| main.rs:277:9:277:11 | add | main.rs:276:19:276:38 | ...::new | main.rs:277:9:277:11 | add | Cookie attribute 'Secure' is not set to true. |
| main.rs:281:9:281:11 | add | main.rs:280:5:280:11 | [SSA] cookie2 | main.rs:281:9:281:11 | add | Cookie attribute 'Secure' is not set to true. |
| main.rs:281:9:281:11 | add | main.rs:280:5:280:11 | cookie2 | main.rs:281:9:281:11 | add | Cookie attribute 'Secure' is not set to true. |
edges edges
| main.rs:8:19:8:31 | ...::build | main.rs:8:19:8:50 | ...::build(...) | provenance | Src:MaD:13 MaD:13 | | main.rs:8:19:8:50 | ...::build(...) | main.rs:8:19:8:64 | ... .secure(...) | provenance | MaD:35 |
| main.rs:8:19:8:50 | ...::build(...) | main.rs:8:19:8:64 | ... .secure(...) | provenance | MaD:41 |
| main.rs:8:19:8:64 | ... .secure(...) | main.rs:8:66:8:70 | build | provenance | MaD:2 Sink:MaD:2 | | main.rs:8:19:8:64 | ... .secure(...) | main.rs:8:66:8:70 | build | provenance | MaD:2 Sink:MaD:2 |
| main.rs:16:19:16:31 | ...::build | main.rs:16:19:16:50 | ...::build(...) | provenance | Src:MaD:13 MaD:13 | | main.rs:16:19:16:31 | ...::build | main.rs:16:19:16:50 | ...::build(...) | provenance | Src:MaD:15 MaD:15 |
| main.rs:16:19:16:50 | ...::build(...) | main.rs:16:52:16:56 | build | provenance | MaD:2 Sink:MaD:2 | | main.rs:16:19:16:50 | ...::build(...) | main.rs:16:52:16:56 | build | provenance | MaD:2 Sink:MaD:2 |
| main.rs:20:5:20:17 | ...::build | main.rs:20:5:20:36 | ...::build(...) | provenance | Src:MaD:13 MaD:13 | | main.rs:20:5:20:36 | ...::build(...) | main.rs:20:5:20:54 | ... .secure(...) | provenance | MaD:35 |
| main.rs:20:5:20:36 | ...::build(...) | main.rs:20:5:20:54 | ... .secure(...) | provenance | MaD:41 |
| main.rs:20:5:20:54 | ... .secure(...) | main.rs:20:56:20:60 | build | provenance | MaD:2 Sink:MaD:2 | | main.rs:20:5:20:54 | ... .secure(...) | main.rs:20:56:20:60 | build | provenance | MaD:2 Sink:MaD:2 |
| main.rs:21:5:21:17 | ...::build | main.rs:21:5:21:36 | ...::build(...) | provenance | Src:MaD:13 MaD:13 | | main.rs:21:5:21:36 | ...::build(...) | main.rs:21:5:21:55 | ... .secure(...) | provenance | MaD:35 |
| main.rs:21:5:21:36 | ...::build(...) | main.rs:21:5:21:55 | ... .secure(...) | provenance | MaD:41 |
| main.rs:21:5:21:55 | ... .secure(...) | main.rs:21:57:21:61 | build | provenance | MaD:2 Sink:MaD:2 | | main.rs:21:5:21:55 | ... .secure(...) | main.rs:21:57:21:61 | build | provenance | MaD:2 Sink:MaD:2 |
| main.rs:25:5:25:17 | ...::build | main.rs:25:5:25:36 | ...::build(...) | provenance | Src:MaD:13 MaD:13 | | main.rs:25:5:25:36 | ...::build(...) | main.rs:25:5:25:52 | ... .secure(...) | provenance | MaD:35 |
| main.rs:25:5:25:36 | ...::build(...) | main.rs:25:5:25:52 | ... .secure(...) | provenance | MaD:41 |
| main.rs:25:5:25:52 | ... .secure(...) | main.rs:25:54:25:58 | build | provenance | MaD:2 Sink:MaD:2 | | main.rs:25:5:25:52 | ... .secure(...) | main.rs:25:54:25:58 | build | provenance | MaD:2 Sink:MaD:2 |
| main.rs:26:5:26:17 | ...::build | main.rs:26:5:26:36 | ...::build(...) | provenance | Src:MaD:13 MaD:13 | | main.rs:26:5:26:36 | ...::build(...) | main.rs:26:5:26:50 | ... .secure(...) | provenance | MaD:35 |
| main.rs:26:5:26:36 | ...::build(...) | main.rs:26:5:26:50 | ... .secure(...) | provenance | MaD:41 |
| main.rs:26:5:26:50 | ... .secure(...) | main.rs:26:52:26:56 | build | provenance | MaD:2 Sink:MaD:2 | | main.rs:26:5:26:50 | ... .secure(...) | main.rs:26:52:26:56 | build | provenance | MaD:2 Sink:MaD:2 |
| main.rs:27:5:27:17 | ...::build | main.rs:27:5:27:36 | ...::build(...) | provenance | Src:MaD:13 MaD:13 | | main.rs:27:5:27:36 | ...::build(...) | main.rs:27:5:27:51 | ... .secure(...) | provenance | MaD:35 |
| main.rs:27:5:27:36 | ...::build(...) | main.rs:27:5:27:51 | ... .secure(...) | provenance | MaD:41 |
| main.rs:27:5:27:51 | ... .secure(...) | main.rs:27:53:27:57 | build | provenance | MaD:2 Sink:MaD:2 | | main.rs:27:5:27:51 | ... .secure(...) | main.rs:27:53:27:57 | build | provenance | MaD:2 Sink:MaD:2 |
| main.rs:28:5:28:17 | ...::build | main.rs:28:5:28:36 | ...::build(...) | provenance | Src:MaD:13 MaD:13 | | main.rs:28:5:28:36 | ...::build(...) | main.rs:28:5:28:60 | ... .secure(...) | provenance | MaD:35 |
| main.rs:28:5:28:36 | ...::build(...) | main.rs:28:5:28:60 | ... .secure(...) | provenance | MaD:41 |
| main.rs:28:5:28:60 | ... .secure(...) | main.rs:28:62:28:66 | build | provenance | MaD:2 Sink:MaD:2 | | main.rs:28:5:28:60 | ... .secure(...) | main.rs:28:62:28:66 | build | provenance | MaD:2 Sink:MaD:2 |
| main.rs:29:5:29:17 | ...::build | main.rs:29:5:29:36 | ...::build(...) | provenance | Src:MaD:13 MaD:13 | | main.rs:29:5:29:36 | ...::build(...) | main.rs:29:5:29:60 | ... .secure(...) | provenance | MaD:35 |
| main.rs:29:5:29:36 | ...::build(...) | main.rs:29:5:29:60 | ... .secure(...) | provenance | MaD:41 |
| main.rs:29:5:29:60 | ... .secure(...) | main.rs:29:62:29:66 | build | provenance | MaD:2 Sink:MaD:2 | | main.rs:29:5:29:60 | ... .secure(...) | main.rs:29:62:29:66 | build | provenance | MaD:2 Sink:MaD:2 |
| main.rs:33:9:33:21 | ...::build | main.rs:33:9:33:40 | ...::build(...) | provenance | Src:MaD:13 MaD:13 | | main.rs:33:9:33:40 | ...::build(...) | main.rs:33:9:33:58 | ... .secure(...) | provenance | MaD:35 |
| main.rs:33:9:33:40 | ...::build(...) | main.rs:33:9:33:58 | ... .secure(...) | provenance | MaD:41 |
| main.rs:33:9:33:58 | ... .secure(...) | main.rs:33:60:33:64 | build | provenance | MaD:2 Sink:MaD:2 | | main.rs:33:9:33:58 | ... .secure(...) | main.rs:33:60:33:64 | build | provenance | MaD:2 Sink:MaD:2 |
| main.rs:35:9:35:21 | ...::build | main.rs:35:9:35:40 | ...::build(...) | provenance | Src:MaD:13 MaD:13 | | main.rs:35:9:35:40 | ...::build(...) | main.rs:35:9:35:58 | ... .secure(...) | provenance | MaD:35 |
| main.rs:35:9:35:40 | ...::build(...) | main.rs:35:9:35:58 | ... .secure(...) | provenance | MaD:41 |
| main.rs:35:9:35:58 | ... .secure(...) | main.rs:35:60:35:64 | build | provenance | MaD:2 Sink:MaD:2 | | main.rs:35:9:35:58 | ... .secure(...) | main.rs:35:60:35:64 | build | provenance | MaD:2 Sink:MaD:2 |
| main.rs:39:5:39:22 | ...::new | main.rs:39:5:39:39 | ...::new(...) | provenance | Src:MaD:16 MaD:16 | | main.rs:39:5:39:39 | ...::new(...) | main.rs:39:5:39:53 | ... .secure(...) | provenance | MaD:35 |
| main.rs:39:5:39:39 | ...::new(...) | main.rs:39:5:39:53 | ... .secure(...) | provenance | MaD:41 |
| main.rs:39:5:39:53 | ... .secure(...) | main.rs:39:55:39:59 | build | provenance | MaD:2 Sink:MaD:2 | | main.rs:39:5:39:53 | ... .secure(...) | main.rs:39:55:39:59 | build | provenance | MaD:2 Sink:MaD:2 |
| main.rs:40:5:40:17 | ...::build | main.rs:40:5:40:36 | ...::build(...) | provenance | Src:MaD:13 MaD:13 | | main.rs:40:5:40:50 | ... .expires(...) | main.rs:40:5:40:64 | ... .secure(...) | provenance | MaD:35 |
| main.rs:40:5:40:36 | ...::build(...) | main.rs:40:5:40:50 | ... .expires(...) | provenance | MaD:33 |
| main.rs:40:5:40:50 | ... .expires(...) | main.rs:40:5:40:64 | ... .secure(...) | provenance | MaD:41 |
| main.rs:40:5:40:64 | ... .secure(...) | main.rs:40:66:40:70 | build | provenance | MaD:2 Sink:MaD:2 | | main.rs:40:5:40:64 | ... .secure(...) | main.rs:40:66:40:70 | build | provenance | MaD:2 Sink:MaD:2 |
| main.rs:41:5:41:17 | ...::build | main.rs:41:5:41:36 | ...::build(...) | provenance | Src:MaD:13 MaD:13 | | main.rs:41:5:41:79 | ... .max_age(...) | main.rs:41:5:41:93 | ... .secure(...) | provenance | MaD:35 |
| main.rs:41:5:41:36 | ...::build(...) | main.rs:41:5:41:79 | ... .max_age(...) | provenance | MaD:35 |
| main.rs:41:5:41:79 | ... .max_age(...) | main.rs:41:5:41:93 | ... .secure(...) | provenance | MaD:41 |
| main.rs:41:5:41:93 | ... .secure(...) | main.rs:41:95:41:99 | build | provenance | MaD:2 Sink:MaD:2 | | main.rs:41:5:41:93 | ... .secure(...) | main.rs:41:95:41:99 | build | provenance | MaD:2 Sink:MaD:2 |
| main.rs:42:5:42:17 | ...::build | main.rs:42:5:42:36 | ...::build(...) | provenance | Src:MaD:13 MaD:13 | | main.rs:42:5:42:58 | ... .domain(...) | main.rs:42:5:42:72 | ... .secure(...) | provenance | MaD:35 |
| main.rs:42:5:42:36 | ...::build(...) | main.rs:42:5:42:58 | ... .domain(...) | provenance | MaD:32 |
| main.rs:42:5:42:58 | ... .domain(...) | main.rs:42:5:42:72 | ... .secure(...) | provenance | MaD:41 |
| main.rs:42:5:42:72 | ... .secure(...) | main.rs:42:74:42:78 | build | provenance | MaD:2 Sink:MaD:2 | | main.rs:42:5:42:72 | ... .secure(...) | main.rs:42:74:42:78 | build | provenance | MaD:2 Sink:MaD:2 |
| main.rs:43:5:43:17 | ...::build | main.rs:43:5:43:36 | ...::build(...) | provenance | Src:MaD:13 MaD:13 | | main.rs:43:5:43:46 | ... .path(...) | main.rs:43:5:43:60 | ... .secure(...) | provenance | MaD:35 |
| main.rs:43:5:43:36 | ...::build(...) | main.rs:43:5:43:46 | ... .path(...) | provenance | MaD:37 |
| main.rs:43:5:43:46 | ... .path(...) | main.rs:43:5:43:60 | ... .secure(...) | provenance | MaD:41 |
| main.rs:43:5:43:60 | ... .secure(...) | main.rs:43:62:43:66 | build | provenance | MaD:2 Sink:MaD:2 | | main.rs:43:5:43:60 | ... .secure(...) | main.rs:43:62:43:66 | build | provenance | MaD:2 Sink:MaD:2 |
| main.rs:44:5:44:17 | ...::build | main.rs:44:5:44:36 | ...::build(...) | provenance | Src:MaD:13 MaD:13 | | main.rs:44:5:44:52 | ... .http_only(...) | main.rs:44:5:44:66 | ... .secure(...) | provenance | MaD:35 |
| main.rs:44:5:44:36 | ...::build(...) | main.rs:44:5:44:52 | ... .http_only(...) | provenance | MaD:34 |
| main.rs:44:5:44:52 | ... .http_only(...) | main.rs:44:5:44:66 | ... .secure(...) | provenance | MaD:41 |
| main.rs:44:5:44:66 | ... .secure(...) | main.rs:44:68:44:72 | build | provenance | MaD:2 Sink:MaD:2 | | main.rs:44:5:44:66 | ... .secure(...) | main.rs:44:68:44:72 | build | provenance | MaD:2 Sink:MaD:2 |
| main.rs:45:5:45:17 | ...::build | main.rs:45:5:45:36 | ...::build(...) | provenance | Src:MaD:13 MaD:13 | | main.rs:45:5:45:72 | ... .same_site(...) | main.rs:45:5:45:86 | ... .secure(...) | provenance | MaD:35 |
| main.rs:45:5:45:36 | ...::build(...) | main.rs:45:5:45:72 | ... .same_site(...) | provenance | MaD:40 |
| main.rs:45:5:45:72 | ... .same_site(...) | main.rs:45:5:45:86 | ... .secure(...) | provenance | MaD:41 |
| main.rs:45:5:45:86 | ... .secure(...) | main.rs:45:88:45:92 | build | provenance | MaD:2 Sink:MaD:2 | | main.rs:45:5:45:86 | ... .secure(...) | main.rs:45:88:45:92 | build | provenance | MaD:2 Sink:MaD:2 |
| main.rs:46:5:46:17 | ...::build | main.rs:46:5:46:36 | ...::build(...) | provenance | Src:MaD:13 MaD:13 | | main.rs:46:5:46:48 | ... .permanent() | main.rs:46:5:46:62 | ... .secure(...) | provenance | MaD:35 |
| main.rs:46:5:46:36 | ...::build(...) | main.rs:46:5:46:48 | ... .permanent() | provenance | MaD:38 |
| main.rs:46:5:46:48 | ... .permanent() | main.rs:46:5:46:62 | ... .secure(...) | provenance | MaD:41 |
| main.rs:46:5:46:62 | ... .secure(...) | main.rs:46:64:46:68 | build | provenance | MaD:2 Sink:MaD:2 | | main.rs:46:5:46:62 | ... .secure(...) | main.rs:46:64:46:68 | build | provenance | MaD:2 Sink:MaD:2 |
| main.rs:47:5:47:17 | ...::build | main.rs:47:5:47:36 | ...::build(...) | provenance | Src:MaD:13 MaD:13 | | main.rs:47:5:47:46 | ... .removal() | main.rs:47:5:47:60 | ... .secure(...) | provenance | MaD:35 |
| main.rs:47:5:47:36 | ...::build(...) | main.rs:47:5:47:46 | ... .removal() | provenance | MaD:39 |
| main.rs:47:5:47:46 | ... .removal() | main.rs:47:5:47:60 | ... .secure(...) | provenance | MaD:41 |
| main.rs:47:5:47:60 | ... .secure(...) | main.rs:47:62:47:66 | build | provenance | MaD:2 Sink:MaD:2 | | main.rs:47:5:47:60 | ... .secure(...) | main.rs:47:62:47:66 | build | provenance | MaD:2 Sink:MaD:2 |
| main.rs:48:5:48:17 | ...::build | main.rs:48:5:48:36 | ...::build(...) | provenance | Src:MaD:13 MaD:13 | | main.rs:48:5:48:36 | ...::build(...) | main.rs:48:5:48:50 | ... .secure(...) | provenance | MaD:35 |
| main.rs:48:5:48:36 | ...::build(...) | main.rs:48:5:48:50 | ... .secure(...) | provenance | MaD:41 |
| main.rs:48:5:48:50 | ... .secure(...) | main.rs:48:52:48:57 | finish | provenance | MaD:3 Sink:MaD:3 | | main.rs:48:5:48:50 | ... .secure(...) | main.rs:48:52:48:57 | finish | provenance | MaD:3 Sink:MaD:3 |
| main.rs:49:5:49:17 | ...::build | main.rs:49:5:49:25 | ...::build(...) | provenance | Src:MaD:13 MaD:13 | | main.rs:49:5:49:25 | ...::build(...) | main.rs:49:5:49:39 | ... .secure(...) | provenance | MaD:35 |
| main.rs:49:5:49:25 | ...::build(...) | main.rs:49:5:49:39 | ... .secure(...) | provenance | MaD:41 |
| main.rs:49:5:49:39 | ... .secure(...) | main.rs:49:41:49:45 | build | provenance | MaD:2 Sink:MaD:2 | | main.rs:49:5:49:39 | ... .secure(...) | main.rs:49:41:49:45 | build | provenance | MaD:2 Sink:MaD:2 |
| main.rs:50:5:50:17 | ...::build | main.rs:50:5:50:40 | ...::build(...) | provenance | Src:MaD:13 MaD:13 | | main.rs:50:5:50:40 | ...::build(...) | main.rs:50:5:50:54 | ... .secure(...) | provenance | MaD:35 |
| main.rs:50:5:50:40 | ...::build(...) | main.rs:50:5:50:54 | ... .secure(...) | provenance | MaD:41 |
| main.rs:50:5:50:54 | ... .secure(...) | main.rs:50:56:50:60 | build | provenance | MaD:2 Sink:MaD:2 | | main.rs:50:5:50:54 | ... .secure(...) | main.rs:50:56:50:60 | build | provenance | MaD:2 Sink:MaD:2 |
| main.rs:53:5:53:49 | ... .secure(...) | main.rs:53:5:53:63 | ... .secure(...) | provenance | MaD:41 | | main.rs:53:5:53:49 | ... .secure(...) | main.rs:53:5:53:63 | ... .secure(...) | provenance | MaD:35 |
| main.rs:53:5:53:63 | ... .secure(...) | main.rs:53:65:53:69 | build | provenance | MaD:2 Sink:MaD:2 | | main.rs:53:5:53:63 | ... .secure(...) | main.rs:53:65:53:69 | build | provenance | MaD:2 Sink:MaD:2 |
| main.rs:58:9:58:13 | mut a | main.rs:59:13:59:13 | a | provenance | | | main.rs:58:9:58:13 | mut a | main.rs:59:13:59:13 | a | provenance | |
| main.rs:58:9:58:13 | mut a | main.rs:59:13:59:21 | a.clone() | provenance | MaD:17 | | main.rs:58:9:58:13 | mut a | main.rs:59:13:59:21 | a.clone() | provenance | MaD:18 |
| main.rs:58:9:58:13 | mut a | main.rs:60:22:60:22 | a | provenance | | | main.rs:58:9:58:13 | mut a | main.rs:60:22:60:22 | a | provenance | |
| main.rs:58:9:58:13 | mut a | main.rs:60:22:60:30 | a.clone() | provenance | MaD:17 | | main.rs:58:9:58:13 | mut a | main.rs:60:22:60:30 | a.clone() | provenance | MaD:18 |
| main.rs:58:17:58:27 | ...::new | main.rs:58:17:58:44 | ...::new(...) | provenance | Src:MaD:15 MaD:15 | | main.rs:58:17:58:27 | ...::new | main.rs:58:17:58:44 | ...::new(...) | provenance | Src:MaD:17 MaD:17 |
| main.rs:58:17:58:44 | ...::new(...) | main.rs:58:9:58:13 | mut a | provenance | | | main.rs:58:17:58:44 | ...::new(...) | main.rs:58:9:58:13 | mut a | provenance | |
| main.rs:59:13:59:13 | a | main.rs:59:13:59:21 | a.clone() | provenance | MaD:17 | | main.rs:59:13:59:13 | a | main.rs:59:13:59:21 | a.clone() | provenance | MaD:18 |
| main.rs:59:13:59:21 | a.clone() | main.rs:59:9:59:11 | add | provenance | MaD:4 Sink:MaD:4 | | main.rs:59:13:59:21 | a.clone() | main.rs:59:9:59:11 | add | provenance | MaD:4 Sink:MaD:4 |
| main.rs:60:22:60:22 | a | main.rs:60:22:60:30 | a.clone() | provenance | MaD:17 | | main.rs:60:22:60:22 | a | main.rs:60:22:60:30 | a.clone() | provenance | MaD:18 |
| main.rs:60:22:60:30 | a.clone() | main.rs:60:9:60:20 | add_original | provenance | MaD:5 Sink:MaD:5 | | main.rs:60:22:60:30 | a.clone() | main.rs:60:9:60:20 | add_original | provenance | MaD:5 Sink:MaD:5 |
| main.rs:63:5:63:5 | [SSA] a | main.rs:64:13:64:13 | a | provenance | | | main.rs:63:5:63:5 | [SSA] a | main.rs:64:13:64:13 | a | provenance | |
| main.rs:63:5:63:5 | [SSA] a | main.rs:64:13:64:21 | a.clone() | provenance | MaD:17 | | main.rs:63:5:63:5 | [SSA] a | main.rs:64:13:64:21 | a.clone() | provenance | MaD:18 |
| main.rs:63:5:63:5 | [SSA] a | main.rs:70:29:70:29 | a | provenance | | | main.rs:63:5:63:5 | [SSA] a | main.rs:70:29:70:29 | a | provenance | |
| main.rs:63:5:63:5 | [SSA] a | main.rs:70:29:70:37 | a.clone() | provenance | MaD:17 | | main.rs:63:5:63:5 | [SSA] a | main.rs:70:29:70:37 | a.clone() | provenance | MaD:18 |
| main.rs:63:5:63:5 | [SSA] a | main.rs:79:30:79:30 | a | provenance | | | main.rs:63:5:63:5 | [SSA] a | main.rs:79:30:79:30 | a | provenance | |
| main.rs:63:5:63:5 | [SSA] a | main.rs:79:30:79:38 | a.clone() | provenance | MaD:17 | | main.rs:63:5:63:5 | [SSA] a | main.rs:79:30:79:38 | a.clone() | provenance | MaD:18 |
| main.rs:63:5:63:5 | a | main.rs:64:13:64:13 | a | provenance | | | main.rs:63:5:63:5 | a | main.rs:64:13:64:13 | a | provenance | |
| main.rs:63:5:63:5 | a | main.rs:64:13:64:21 | a.clone() | provenance | MaD:17 | | main.rs:63:5:63:5 | a | main.rs:64:13:64:21 | a.clone() | provenance | MaD:18 |
| main.rs:63:5:63:5 | a | main.rs:70:29:70:29 | a | provenance | | | main.rs:63:5:63:5 | a | main.rs:70:29:70:29 | a | provenance | |
| main.rs:63:5:63:5 | a | main.rs:70:29:70:37 | a.clone() | provenance | MaD:17 | | main.rs:63:5:63:5 | a | main.rs:70:29:70:37 | a.clone() | provenance | MaD:18 |
| main.rs:63:5:63:5 | a | main.rs:79:30:79:30 | a | provenance | | | main.rs:63:5:63:5 | a | main.rs:79:30:79:30 | a | provenance | |
| main.rs:63:5:63:5 | a | main.rs:79:30:79:38 | a.clone() | provenance | MaD:17 | | main.rs:63:5:63:5 | a | main.rs:79:30:79:38 | a.clone() | provenance | MaD:18 |
| main.rs:64:13:64:13 | a | main.rs:64:13:64:21 | a.clone() | provenance | MaD:17 | | main.rs:64:13:64:13 | a | main.rs:64:13:64:21 | a.clone() | provenance | MaD:18 |
| main.rs:64:13:64:21 | a.clone() | main.rs:64:9:64:11 | add | provenance | MaD:4 Sink:MaD:4 | | main.rs:64:13:64:21 | a.clone() | main.rs:64:9:64:11 | add | provenance | MaD:4 Sink:MaD:4 |
| main.rs:68:9:68:13 | mut b | main.rs:69:20:69:20 | b | provenance | | | main.rs:68:9:68:13 | mut b | main.rs:69:20:69:20 | b | provenance | |
| main.rs:68:9:68:13 | mut b | main.rs:69:20:69:28 | b.clone() | provenance | MaD:17 | | main.rs:68:9:68:13 | mut b | main.rs:69:20:69:28 | b.clone() | provenance | MaD:18 |
| main.rs:68:9:68:13 | mut b | main.rs:72:20:72:20 | b | provenance | | | main.rs:68:17:68:29 | ...::named | main.rs:68:17:68:37 | ...::named(...) | provenance | Src:MaD:16 MaD:16 |
| main.rs:68:9:68:13 | mut b | main.rs:72:20:72:28 | b.clone() | provenance | MaD:17 |
| main.rs:68:17:68:29 | ...::named | main.rs:68:17:68:37 | ...::named(...) | provenance | Src:MaD:14 MaD:14 |
| main.rs:68:17:68:37 | ...::named(...) | main.rs:68:9:68:13 | mut b | provenance | | | main.rs:68:17:68:37 | ...::named(...) | main.rs:68:9:68:13 | mut b | provenance | |
| main.rs:69:20:69:20 | b | main.rs:69:20:69:28 | b.clone() | provenance | MaD:17 | | main.rs:69:20:69:20 | b | main.rs:69:20:69:28 | b.clone() | provenance | MaD:18 |
| main.rs:69:20:69:28 | b.clone() | main.rs:69:16:69:18 | add | provenance | MaD:8 Sink:MaD:8 | | main.rs:69:20:69:28 | b.clone() | main.rs:69:16:69:18 | add | provenance | MaD:8 Sink:MaD:8 |
| main.rs:70:29:70:29 | a | main.rs:70:29:70:37 | a.clone() | provenance | MaD:17 | | main.rs:70:29:70:29 | a | main.rs:70:29:70:37 | a.clone() | provenance | MaD:18 |
| main.rs:70:29:70:37 | a.clone() | main.rs:70:16:70:27 | add_original | provenance | MaD:9 Sink:MaD:9 | | main.rs:70:29:70:37 | a.clone() | main.rs:70:16:70:27 | add_original | provenance | MaD:9 Sink:MaD:9 |
| main.rs:71:5:71:5 | [SSA] b | main.rs:72:20:72:20 | b | provenance | | | main.rs:71:5:71:5 | [SSA] b | main.rs:72:20:72:20 | b | provenance | |
| main.rs:71:5:71:5 | [SSA] b | main.rs:72:20:72:28 | b.clone() | provenance | MaD:17 | | main.rs:71:5:71:5 | [SSA] b | main.rs:72:20:72:28 | b.clone() | provenance | MaD:18 |
| main.rs:71:5:71:5 | b | main.rs:72:20:72:20 | b | provenance | | | main.rs:71:5:71:5 | b | main.rs:72:20:72:20 | b | provenance | |
| main.rs:71:5:71:5 | b | main.rs:72:20:72:28 | b.clone() | provenance | MaD:17 | | main.rs:71:5:71:5 | b | main.rs:72:20:72:28 | b.clone() | provenance | MaD:18 |
| main.rs:72:20:72:20 | b | main.rs:72:20:72:28 | b.clone() | provenance | MaD:17 | | main.rs:72:20:72:20 | b | main.rs:72:20:72:28 | b.clone() | provenance | MaD:18 |
| main.rs:72:20:72:28 | b.clone() | main.rs:72:16:72:18 | add | provenance | MaD:8 Sink:MaD:8 | | main.rs:72:20:72:28 | b.clone() | main.rs:72:16:72:18 | add | provenance | MaD:8 Sink:MaD:8 |
| main.rs:77:9:77:13 | mut c | main.rs:78:21:78:21 | c | provenance | | | main.rs:77:9:77:13 | mut c | main.rs:78:21:78:21 | c | provenance | |
| main.rs:77:9:77:13 | mut c | main.rs:78:21:78:29 | c.clone() | provenance | MaD:17 | | main.rs:77:9:77:13 | mut c | main.rs:78:21:78:29 | c.clone() | provenance | MaD:18 |
| main.rs:77:9:77:13 | mut c | main.rs:83:21:83:21 | c | provenance | | | main.rs:77:9:77:13 | mut c | main.rs:83:21:83:21 | c | provenance | |
| main.rs:77:9:77:13 | mut c | main.rs:83:21:83:29 | c.clone() | provenance | MaD:17 | | main.rs:77:9:77:13 | mut c | main.rs:83:21:83:29 | c.clone() | provenance | MaD:18 |
| main.rs:77:17:77:28 | ...::from | main.rs:77:17:77:36 | ...::from(...) | provenance | Src:MaD:12 MaD:12 | | main.rs:77:17:77:28 | ...::from | main.rs:77:17:77:36 | ...::from(...) | provenance | Src:MaD:14 MaD:14 |
| main.rs:77:17:77:36 | ...::from(...) | main.rs:77:9:77:13 | mut c | provenance | | | main.rs:77:17:77:36 | ...::from(...) | main.rs:77:9:77:13 | mut c | provenance | |
| main.rs:78:21:78:21 | c | main.rs:78:21:78:29 | c.clone() | provenance | MaD:17 | | main.rs:78:21:78:21 | c | main.rs:78:21:78:29 | c.clone() | provenance | MaD:18 |
| main.rs:78:21:78:29 | c.clone() | main.rs:78:17:78:19 | add | provenance | MaD:6 Sink:MaD:6 | | main.rs:78:21:78:29 | c.clone() | main.rs:78:17:78:19 | add | provenance | MaD:6 Sink:MaD:6 |
| main.rs:79:30:79:30 | a | main.rs:79:30:79:38 | a.clone() | provenance | MaD:17 | | main.rs:79:30:79:30 | a | main.rs:79:30:79:38 | a.clone() | provenance | MaD:18 |
| main.rs:79:30:79:38 | a.clone() | main.rs:79:17:79:28 | add_original | provenance | MaD:7 Sink:MaD:7 | | main.rs:79:30:79:38 | a.clone() | main.rs:79:17:79:28 | add_original | provenance | MaD:7 Sink:MaD:7 |
| main.rs:83:21:83:21 | c | main.rs:83:21:83:29 | c.clone() | provenance | MaD:17 | | main.rs:83:21:83:21 | c | main.rs:83:21:83:29 | c.clone() | provenance | MaD:18 |
| main.rs:83:21:83:29 | c.clone() | main.rs:83:17:83:19 | add | provenance | MaD:6 Sink:MaD:6 | | main.rs:83:21:83:29 | c.clone() | main.rs:83:17:83:19 | add | provenance | MaD:6 Sink:MaD:6 |
| main.rs:87:9:87:13 | mut d | main.rs:88:13:88:13 | d | provenance | | | main.rs:87:9:87:13 | mut d | main.rs:88:13:88:13 | d | provenance | |
| main.rs:87:9:87:13 | mut d | main.rs:88:13:88:21 | d.clone() | provenance | MaD:17 | | main.rs:87:9:87:13 | mut d | main.rs:88:13:88:21 | d.clone() | provenance | MaD:18 |
| main.rs:87:9:87:13 | mut d | main.rs:94:13:94:13 | d | provenance | | | main.rs:87:9:87:13 | mut d | main.rs:94:13:94:13 | d | provenance | |
| main.rs:87:9:87:13 | mut d | main.rs:94:13:94:21 | d.clone() | provenance | MaD:17 | | main.rs:87:9:87:13 | mut d | main.rs:94:13:94:21 | d.clone() | provenance | MaD:18 |
| main.rs:87:17:87:28 | ...::from | main.rs:87:17:87:36 | ...::from(...) | provenance | Src:MaD:12 MaD:12 | | main.rs:87:17:87:28 | ...::from | main.rs:87:17:87:36 | ...::from(...) | provenance | Src:MaD:14 MaD:14 |
| main.rs:87:17:87:36 | ...::from(...) | main.rs:87:9:87:13 | mut d | provenance | | | main.rs:87:17:87:36 | ...::from(...) | main.rs:87:9:87:13 | mut d | provenance | |
| main.rs:88:13:88:13 | d | main.rs:88:13:88:21 | d.clone() | provenance | MaD:17 | | main.rs:88:13:88:13 | d | main.rs:88:13:88:21 | d.clone() | provenance | MaD:18 |
| main.rs:88:13:88:21 | d.clone() | main.rs:88:9:88:11 | add | provenance | MaD:4 Sink:MaD:4 | | main.rs:88:13:88:21 | d.clone() | main.rs:88:9:88:11 | add | provenance | MaD:4 Sink:MaD:4 |
| main.rs:94:13:94:13 | d | main.rs:94:13:94:21 | d.clone() | provenance | MaD:17 | | main.rs:94:13:94:13 | d | main.rs:94:13:94:21 | d.clone() | provenance | MaD:18 |
| main.rs:94:13:94:21 | d.clone() | main.rs:94:9:94:11 | add | provenance | MaD:4 Sink:MaD:4 | | main.rs:94:13:94:21 | d.clone() | main.rs:94:9:94:11 | add | provenance | MaD:4 Sink:MaD:4 |
| main.rs:114:5:114:17 | ...::build | main.rs:114:5:114:36 | ...::build(...) | provenance | Src:MaD:13 MaD:13 | | main.rs:114:5:114:17 | ...::build | main.rs:114:5:114:36 | ...::build(...) | provenance | Src:MaD:15 MaD:15 |
| main.rs:114:5:114:36 | ...::build(...) | main.rs:114:5:114:54 | ... .partitioned(...) | provenance | MaD:36 | | main.rs:114:5:114:36 | ...::build(...) | main.rs:114:5:114:54 | ... .partitioned(...) | provenance | MaD:33 |
| main.rs:114:5:114:54 | ... .partitioned(...) | main.rs:114:56:114:60 | build | provenance | MaD:2 Sink:MaD:2 | | main.rs:114:5:114:54 | ... .partitioned(...) | main.rs:114:56:114:60 | build | provenance | MaD:2 Sink:MaD:2 |
| main.rs:122:9:122:9 | a | main.rs:123:20:123:20 | a | provenance | | | main.rs:122:9:122:9 | a | main.rs:123:20:123:20 | a | provenance | |
| main.rs:122:9:122:9 | a | main.rs:123:20:123:28 | a.clone() | provenance | MaD:17 | | main.rs:122:9:122:9 | a | main.rs:123:20:123:28 | a.clone() | provenance | MaD:18 |
| main.rs:122:13:122:41 | ...::new | main.rs:122:13:122:58 | ...::new(...) | provenance | Src:MaD:11 MaD:11 | | main.rs:122:13:122:41 | ...::new | main.rs:122:13:122:58 | ...::new(...) | provenance | Src:MaD:13 MaD:13 |
| main.rs:122:13:122:58 | ...::new(...) | main.rs:122:9:122:9 | a | provenance | | | main.rs:122:13:122:58 | ...::new(...) | main.rs:122:9:122:9 | a | provenance | |
| main.rs:123:20:123:20 | a | main.rs:123:20:123:28 | a.clone() | provenance | MaD:17 | | main.rs:123:20:123:20 | a | main.rs:123:20:123:28 | a.clone() | provenance | MaD:18 |
| main.rs:123:20:123:28 | a.clone() | main.rs:123:13:123:18 | insert | provenance | MaD:1 Sink:MaD:1 | | main.rs:123:20:123:28 | a.clone() | main.rs:123:13:123:18 | insert | provenance | MaD:1 Sink:MaD:1 |
| main.rs:130:9:130:9 | c | main.rs:131:20:131:20 | c | provenance | | | main.rs:130:9:130:9 | c | main.rs:131:20:131:20 | c | provenance | |
| main.rs:130:9:130:9 | c | main.rs:131:20:131:28 | c.clone() | provenance | MaD:17 | | main.rs:130:9:130:9 | c | main.rs:131:20:131:28 | c.clone() | provenance | MaD:18 |
| main.rs:130:9:130:9 | c | main.rs:134:13:134:35 | c.set_partitioned(...) | provenance | MaD:24 | | main.rs:130:9:130:9 | c | main.rs:134:13:134:35 | c.set_partitioned(...) | provenance | MaD:25 |
| main.rs:130:13:130:13 | b | main.rs:130:13:130:31 | b.set_secure(...) | provenance | MaD:27 | | main.rs:130:13:130:13 | b | main.rs:130:13:130:31 | b.set_secure(...) | provenance | MaD:28 |
| main.rs:130:13:130:31 | b.set_secure(...) | main.rs:130:9:130:9 | c | provenance | | | main.rs:130:13:130:31 | b.set_secure(...) | main.rs:130:9:130:9 | c | provenance | |
| main.rs:131:20:131:20 | c | main.rs:131:20:131:28 | c.clone() | provenance | MaD:17 | | main.rs:131:20:131:20 | c | main.rs:131:20:131:28 | c.clone() | provenance | MaD:18 |
| main.rs:131:20:131:28 | c.clone() | main.rs:131:13:131:18 | insert | provenance | MaD:1 Sink:MaD:1 | | main.rs:131:20:131:28 | c.clone() | main.rs:131:13:131:18 | insert | provenance | MaD:1 Sink:MaD:1 |
| main.rs:134:9:134:9 | d | main.rs:135:20:135:20 | d | provenance | | | main.rs:134:9:134:9 | d | main.rs:135:20:135:20 | d | provenance | |
| main.rs:134:9:134:9 | d | main.rs:135:20:135:28 | d.clone() | provenance | MaD:17 | | main.rs:134:9:134:9 | d | main.rs:135:20:135:28 | d.clone() | provenance | MaD:18 |
| main.rs:134:13:134:35 | c.set_partitioned(...) | main.rs:134:9:134:9 | d | provenance | | | main.rs:134:13:134:35 | c.set_partitioned(...) | main.rs:134:9:134:9 | d | provenance | |
| main.rs:135:20:135:20 | d | main.rs:135:20:135:28 | d.clone() | provenance | MaD:17 | | main.rs:135:20:135:20 | d | main.rs:135:20:135:28 | d.clone() | provenance | MaD:18 |
| main.rs:135:20:135:28 | d.clone() | main.rs:135:13:135:18 | insert | provenance | MaD:1 Sink:MaD:1 | | main.rs:135:20:135:28 | d.clone() | main.rs:135:13:135:18 | insert | provenance | MaD:1 Sink:MaD:1 |
| main.rs:146:9:146:9 | g | main.rs:147:20:147:20 | g | provenance | | | main.rs:146:9:146:9 | g | main.rs:147:20:147:20 | g | provenance | |
| main.rs:146:9:146:9 | g | main.rs:147:20:147:28 | g.clone() | provenance | MaD:17 | | main.rs:146:9:146:9 | g | main.rs:147:20:147:28 | g.clone() | provenance | MaD:18 |
| main.rs:146:13:146:13 | f | main.rs:146:13:146:31 | f.set_secure(...) | provenance | MaD:27 | | main.rs:146:13:146:13 | f | main.rs:146:13:146:31 | f.set_secure(...) | provenance | MaD:28 |
| main.rs:146:13:146:31 | f.set_secure(...) | main.rs:146:9:146:9 | g | provenance | | | main.rs:146:13:146:31 | f.set_secure(...) | main.rs:146:9:146:9 | g | provenance | |
| main.rs:147:20:147:20 | g | main.rs:147:20:147:28 | g.clone() | provenance | MaD:17 | | main.rs:147:20:147:20 | g | main.rs:147:20:147:28 | g.clone() | provenance | MaD:18 |
| main.rs:147:20:147:28 | g.clone() | main.rs:147:13:147:18 | insert | provenance | MaD:1 Sink:MaD:1 | | main.rs:147:20:147:28 | g.clone() | main.rs:147:13:147:18 | insert | provenance | MaD:1 Sink:MaD:1 |
| main.rs:151:9:151:9 | h | main.rs:152:20:152:20 | h | provenance | | | main.rs:151:9:151:9 | h | main.rs:152:20:152:20 | h | provenance | |
| main.rs:151:13:151:42 | ...::from | main.rs:151:13:151:61 | ...::from(...) | provenance | Src:MaD:10 MaD:10 | | main.rs:151:13:151:42 | ...::from | main.rs:151:13:151:61 | ...::from(...) | provenance | Src:MaD:12 MaD:12 |
| main.rs:151:13:151:61 | ...::from(...) | main.rs:151:9:151:9 | h | provenance | | | main.rs:151:13:151:61 | ...::from(...) | main.rs:151:9:151:9 | h | provenance | |
| main.rs:152:20:152:20 | h | main.rs:152:13:152:18 | insert | provenance | MaD:1 Sink:MaD:1 | | main.rs:152:20:152:20 | h | main.rs:152:13:152:18 | insert | provenance | MaD:1 Sink:MaD:1 |
| main.rs:155:9:155:9 | i | main.rs:156:20:156:20 | i | provenance | | | main.rs:155:9:155:9 | i | main.rs:156:20:156:20 | i | provenance | |
| main.rs:155:9:155:9 | i | main.rs:156:20:156:28 | i.clone() | provenance | MaD:17 | | main.rs:155:9:155:9 | i | main.rs:156:20:156:28 | i.clone() | provenance | MaD:18 |
| main.rs:155:9:155:9 | i | main.rs:157:20:157:20 | i | provenance | | | main.rs:155:9:155:9 | i | main.rs:157:20:157:20 | i | provenance | |
| main.rs:155:9:155:9 | i | main.rs:157:20:157:28 | i.clone() | provenance | MaD:17 | | main.rs:155:9:155:9 | i | main.rs:157:20:157:28 | i.clone() | provenance | MaD:18 |
| main.rs:155:9:155:9 | i | main.rs:158:20:158:20 | i | provenance | | | main.rs:155:9:155:9 | i | main.rs:158:20:158:20 | i | provenance | |
| main.rs:155:9:155:9 | i | main.rs:158:20:158:28 | i.clone() | provenance | MaD:17 | | main.rs:155:9:155:9 | i | main.rs:158:20:158:28 | i.clone() | provenance | MaD:18 |
| main.rs:155:9:155:9 | i | main.rs:159:20:159:20 | i | provenance | | | main.rs:155:9:155:9 | i | main.rs:159:20:159:20 | i | provenance | |
| main.rs:155:9:155:9 | i | main.rs:159:20:159:28 | i.clone() | provenance | MaD:17 | | main.rs:155:9:155:9 | i | main.rs:159:20:159:28 | i.clone() | provenance | MaD:18 |
| main.rs:155:9:155:9 | i | main.rs:160:20:160:20 | i | provenance | | | main.rs:155:9:155:9 | i | main.rs:160:20:160:20 | i | provenance | |
| main.rs:155:9:155:9 | i | main.rs:160:20:160:28 | i.clone() | provenance | MaD:17 | | main.rs:155:9:155:9 | i | main.rs:160:20:160:28 | i.clone() | provenance | MaD:18 |
| main.rs:155:9:155:9 | i | main.rs:161:20:161:20 | i | provenance | | | main.rs:155:9:155:9 | i | main.rs:161:20:161:20 | i | provenance | |
| main.rs:155:9:155:9 | i | main.rs:161:20:161:28 | i.clone() | provenance | MaD:17 | | main.rs:155:9:155:9 | i | main.rs:161:20:161:28 | i.clone() | provenance | MaD:18 |
| main.rs:155:9:155:9 | i | main.rs:162:20:162:20 | i | provenance | | | main.rs:155:9:155:9 | i | main.rs:162:20:162:20 | i | provenance | |
| main.rs:155:9:155:9 | i | main.rs:162:20:162:28 | i.clone() | provenance | MaD:17 | | main.rs:155:9:155:9 | i | main.rs:162:20:162:28 | i.clone() | provenance | MaD:18 |
| main.rs:155:9:155:9 | i | main.rs:163:20:163:20 | i | provenance | | | main.rs:155:9:155:9 | i | main.rs:163:20:163:20 | i | provenance | |
| main.rs:155:9:155:9 | i | main.rs:163:20:163:28 | i.clone() | provenance | MaD:17 | | main.rs:155:9:155:9 | i | main.rs:163:20:163:28 | i.clone() | provenance | MaD:18 |
| main.rs:155:9:155:9 | i | main.rs:164:20:164:20 | i | provenance | | | main.rs:155:9:155:9 | i | main.rs:164:20:164:20 | i | provenance | |
| main.rs:155:9:155:9 | i | main.rs:164:20:164:28 | i.clone() | provenance | MaD:17 | | main.rs:155:9:155:9 | i | main.rs:164:20:164:28 | i.clone() | provenance | MaD:18 |
| main.rs:155:9:155:9 | i | main.rs:165:20:165:20 | i | provenance | | | main.rs:155:9:155:9 | i | main.rs:165:20:165:20 | i | provenance | |
| main.rs:155:9:155:9 | i | main.rs:165:20:165:28 | i.clone() | provenance | MaD:17 | | main.rs:155:9:155:9 | i | main.rs:165:20:165:28 | i.clone() | provenance | MaD:18 |
| main.rs:155:9:155:9 | i | main.rs:166:20:166:20 | i | provenance | | | main.rs:155:9:155:9 | i | main.rs:166:20:166:20 | i | provenance | |
| main.rs:155:9:155:9 | i | main.rs:166:20:166:28 | i.clone() | provenance | MaD:17 | | main.rs:155:9:155:9 | i | main.rs:166:20:166:28 | i.clone() | provenance | MaD:18 |
| main.rs:155:9:155:9 | i | main.rs:167:20:167:20 | i | provenance | | | main.rs:155:9:155:9 | i | main.rs:167:20:167:20 | i | provenance | |
| main.rs:155:9:155:9 | i | main.rs:167:20:167:28 | i.clone() | provenance | MaD:17 | | main.rs:155:9:155:9 | i | main.rs:167:20:167:28 | i.clone() | provenance | MaD:18 |
| main.rs:155:13:155:41 | ...::new | main.rs:155:13:155:58 | ...::new(...) | provenance | Src:MaD:11 MaD:11 | | main.rs:155:13:155:41 | ...::new | main.rs:155:13:155:58 | ...::new(...) | provenance | Src:MaD:13 MaD:13 |
| main.rs:155:13:155:58 | ...::new(...) | main.rs:155:9:155:9 | i | provenance | | | main.rs:155:13:155:58 | ...::new(...) | main.rs:155:9:155:9 | i | provenance | |
| main.rs:156:20:156:20 | i | main.rs:156:20:156:28 | i.clone() | provenance | MaD:17 | | main.rs:156:20:156:20 | i | main.rs:156:20:156:28 | i.clone() | provenance | MaD:18 |
| main.rs:156:20:156:28 | i.clone() | main.rs:156:20:156:46 | ... .set_name(...) | provenance | MaD:23 | | main.rs:156:20:156:28 | i.clone() | main.rs:156:20:156:46 | ... .set_name(...) | provenance | MaD:24 |
| main.rs:156:20:156:46 | ... .set_name(...) | main.rs:156:13:156:18 | insert | provenance | MaD:1 Sink:MaD:1 | | main.rs:156:20:156:46 | ... .set_name(...) | main.rs:156:13:156:18 | insert | provenance | MaD:1 Sink:MaD:1 |
| main.rs:157:20:157:20 | i | main.rs:157:20:157:28 | i.clone() | provenance | MaD:17 | | main.rs:157:20:157:20 | i | main.rs:157:20:157:28 | i.clone() | provenance | MaD:18 |
| main.rs:157:20:157:28 | i.clone() | main.rs:157:20:157:48 | ... .set_value(...) | provenance | MaD:28 | | main.rs:157:20:157:28 | i.clone() | main.rs:157:20:157:48 | ... .set_value(...) | provenance | MaD:29 |
| main.rs:157:20:157:48 | ... .set_value(...) | main.rs:157:13:157:18 | insert | provenance | MaD:1 Sink:MaD:1 | | main.rs:157:20:157:48 | ... .set_value(...) | main.rs:157:13:157:18 | insert | provenance | MaD:1 Sink:MaD:1 |
| main.rs:158:20:158:20 | i | main.rs:158:20:158:28 | i.clone() | provenance | MaD:17 | | main.rs:158:20:158:20 | i | main.rs:158:20:158:28 | i.clone() | provenance | MaD:18 |
| main.rs:158:20:158:28 | i.clone() | main.rs:158:20:158:48 | ... .set_http_only(...) | provenance | MaD:21 | | main.rs:158:20:158:28 | i.clone() | main.rs:158:20:158:48 | ... .set_http_only(...) | provenance | MaD:22 |
| main.rs:158:20:158:48 | ... .set_http_only(...) | main.rs:158:13:158:18 | insert | provenance | MaD:1 Sink:MaD:1 | | main.rs:158:20:158:48 | ... .set_http_only(...) | main.rs:158:13:158:18 | insert | provenance | MaD:1 Sink:MaD:1 |
| main.rs:159:20:159:20 | i | main.rs:159:20:159:28 | i.clone() | provenance | MaD:17 | | main.rs:159:20:159:20 | i | main.rs:159:20:159:28 | i.clone() | provenance | MaD:18 |
| main.rs:159:20:159:28 | i.clone() | main.rs:159:20:159:70 | ... .set_same_site(...) | provenance | MaD:26 | | main.rs:159:20:159:28 | i.clone() | main.rs:159:20:159:70 | ... .set_same_site(...) | provenance | MaD:27 |
| main.rs:159:20:159:70 | ... .set_same_site(...) | main.rs:159:13:159:18 | insert | provenance | MaD:1 Sink:MaD:1 | | main.rs:159:20:159:70 | ... .set_same_site(...) | main.rs:159:13:159:18 | insert | provenance | MaD:1 Sink:MaD:1 |
| main.rs:160:20:160:20 | i | main.rs:160:20:160:28 | i.clone() | provenance | MaD:17 | | main.rs:160:20:160:20 | i | main.rs:160:20:160:28 | i.clone() | provenance | MaD:18 |
| main.rs:160:20:160:28 | i.clone() | main.rs:160:20:160:46 | ... .set_max_age(...) | provenance | MaD:22 | | main.rs:160:20:160:28 | i.clone() | main.rs:160:20:160:46 | ... .set_max_age(...) | provenance | MaD:23 |
| main.rs:160:20:160:46 | ... .set_max_age(...) | main.rs:160:13:160:18 | insert | provenance | MaD:1 Sink:MaD:1 | | main.rs:160:20:160:46 | ... .set_max_age(...) | main.rs:160:13:160:18 | insert | provenance | MaD:1 Sink:MaD:1 |
| main.rs:161:20:161:20 | i | main.rs:161:20:161:28 | i.clone() | provenance | MaD:17 | | main.rs:161:20:161:20 | i | main.rs:161:20:161:28 | i.clone() | provenance | MaD:18 |
| main.rs:161:20:161:28 | i.clone() | main.rs:161:20:161:42 | ... .set_path(...) | provenance | MaD:25 | | main.rs:161:20:161:28 | i.clone() | main.rs:161:20:161:42 | ... .set_path(...) | provenance | MaD:26 |
| main.rs:161:20:161:42 | ... .set_path(...) | main.rs:161:13:161:18 | insert | provenance | MaD:1 Sink:MaD:1 | | main.rs:161:20:161:42 | ... .set_path(...) | main.rs:161:13:161:18 | insert | provenance | MaD:1 Sink:MaD:1 |
| main.rs:162:20:162:20 | i | main.rs:162:20:162:28 | i.clone() | provenance | MaD:17 | | main.rs:162:20:162:20 | i | main.rs:162:20:162:28 | i.clone() | provenance | MaD:18 |
| main.rs:162:20:162:28 | i.clone() | main.rs:162:20:162:41 | ... .unset_path() | provenance | MaD:31 | | main.rs:162:20:162:28 | i.clone() | main.rs:162:20:162:41 | ... .unset_path() | provenance | MaD:32 |
| main.rs:162:20:162:41 | ... .unset_path() | main.rs:162:13:162:18 | insert | provenance | MaD:1 Sink:MaD:1 | | main.rs:162:20:162:41 | ... .unset_path() | main.rs:162:13:162:18 | insert | provenance | MaD:1 Sink:MaD:1 |
| main.rs:163:20:163:20 | i | main.rs:163:20:163:28 | i.clone() | provenance | MaD:17 | | main.rs:163:20:163:20 | i | main.rs:163:20:163:28 | i.clone() | provenance | MaD:18 |
| main.rs:163:20:163:28 | i.clone() | main.rs:163:20:163:54 | ... .set_domain(...) | provenance | MaD:19 | | main.rs:163:20:163:28 | i.clone() | main.rs:163:20:163:54 | ... .set_domain(...) | provenance | MaD:20 |
| main.rs:163:20:163:54 | ... .set_domain(...) | main.rs:163:13:163:18 | insert | provenance | MaD:1 Sink:MaD:1 | | main.rs:163:20:163:54 | ... .set_domain(...) | main.rs:163:13:163:18 | insert | provenance | MaD:1 Sink:MaD:1 |
| main.rs:164:20:164:20 | i | main.rs:164:20:164:28 | i.clone() | provenance | MaD:17 | | main.rs:164:20:164:20 | i | main.rs:164:20:164:28 | i.clone() | provenance | MaD:18 |
| main.rs:164:20:164:28 | i.clone() | main.rs:164:20:164:43 | ... .unset_domain() | provenance | MaD:29 | | main.rs:164:20:164:28 | i.clone() | main.rs:164:20:164:43 | ... .unset_domain() | provenance | MaD:30 |
| main.rs:164:20:164:43 | ... .unset_domain() | main.rs:164:13:164:18 | insert | provenance | MaD:1 Sink:MaD:1 | | main.rs:164:20:164:43 | ... .unset_domain() | main.rs:164:13:164:18 | insert | provenance | MaD:1 Sink:MaD:1 |
| main.rs:165:20:165:20 | i | main.rs:165:20:165:28 | i.clone() | provenance | MaD:17 | | main.rs:165:20:165:20 | i | main.rs:165:20:165:28 | i.clone() | provenance | MaD:18 |
| main.rs:165:20:165:28 | i.clone() | main.rs:165:20:165:46 | ... .set_expires(...) | provenance | MaD:20 | | main.rs:165:20:165:28 | i.clone() | main.rs:165:20:165:46 | ... .set_expires(...) | provenance | MaD:21 |
| main.rs:165:20:165:46 | ... .set_expires(...) | main.rs:165:13:165:18 | insert | provenance | MaD:1 Sink:MaD:1 | | main.rs:165:20:165:46 | ... .set_expires(...) | main.rs:165:13:165:18 | insert | provenance | MaD:1 Sink:MaD:1 |
| main.rs:166:20:166:20 | i | main.rs:166:20:166:28 | i.clone() | provenance | MaD:17 | | main.rs:166:20:166:20 | i | main.rs:166:20:166:28 | i.clone() | provenance | MaD:18 |
| main.rs:166:20:166:28 | i.clone() | main.rs:166:20:166:44 | ... .unset_expires() | provenance | MaD:30 | | main.rs:166:20:166:28 | i.clone() | main.rs:166:20:166:44 | ... .unset_expires() | provenance | MaD:31 |
| main.rs:166:20:166:44 | ... .unset_expires() | main.rs:166:13:166:18 | insert | provenance | MaD:1 Sink:MaD:1 | | main.rs:166:20:166:44 | ... .unset_expires() | main.rs:166:13:166:18 | insert | provenance | MaD:1 Sink:MaD:1 |
| main.rs:167:20:167:20 | i | main.rs:167:20:167:28 | i.clone() | provenance | MaD:17 | | main.rs:167:20:167:20 | i | main.rs:167:20:167:28 | i.clone() | provenance | MaD:18 |
| main.rs:167:20:167:28 | i.clone() | main.rs:167:20:167:45 | ... .make_permanent() | provenance | MaD:18 | | main.rs:167:20:167:28 | i.clone() | main.rs:167:20:167:45 | ... .make_permanent() | provenance | MaD:19 |
| main.rs:167:20:167:45 | ... .make_permanent() | main.rs:167:13:167:18 | insert | provenance | MaD:1 Sink:MaD:1 | | main.rs:167:20:167:45 | ... .make_permanent() | main.rs:167:13:167:18 | insert | provenance | MaD:1 Sink:MaD:1 |
| main.rs:173:22:173:34 | ...::build | main.rs:173:22:173:59 | ...::build(...) | provenance | Src:MaD:13 MaD:13 | | main.rs:173:22:173:34 | ...::build | main.rs:173:22:173:59 | ...::build(...) | provenance | Src:MaD:15 MaD:15 |
| main.rs:173:22:173:59 | ...::build(...) | main.rs:173:61:173:65 | build | provenance | MaD:2 Sink:MaD:2 | | main.rs:173:22:173:59 | ...::build(...) | main.rs:173:61:173:65 | build | provenance | MaD:2 Sink:MaD:2 |
| main.rs:197:5:197:39 | ...::build(...) | main.rs:197:5:197:53 | ... .secure(...) | provenance | MaD:35 |
| main.rs:197:5:197:53 | ... .secure(...) | main.rs:197:55:197:60 | finish | provenance | MaD:3 Sink:MaD:3 |
| main.rs:198:5:198:39 | ...::build(...) | main.rs:198:5:198:53 | ... .secure(...) | provenance | MaD:35 |
| main.rs:198:5:198:53 | ... .secure(...) | main.rs:198:5:198:63 | ... .path(...) | provenance | MaD:34 |
| main.rs:198:5:198:63 | ... .path(...) | main.rs:198:65:198:70 | finish | provenance | MaD:3 Sink:MaD:3 |
| main.rs:201:5:201:11 | [SSA] cookie1 | main.rs:202:13:202:19 | cookie1 | provenance | |
| main.rs:201:5:201:11 | [SSA] cookie1 | main.rs:202:13:202:27 | cookie1.clone() | provenance | MaD:18 |
| main.rs:201:5:201:11 | cookie1 | main.rs:202:13:202:19 | cookie1 | provenance | |
| main.rs:201:5:201:11 | cookie1 | main.rs:202:13:202:27 | cookie1.clone() | provenance | MaD:18 |
| main.rs:202:13:202:19 | cookie1 | main.rs:202:13:202:27 | cookie1.clone() | provenance | MaD:18 |
| main.rs:202:13:202:27 | cookie1.clone() | main.rs:202:9:202:11 | add | provenance | MaD:4 Sink:MaD:4 |
| main.rs:212:5:212:22 | ...::build | main.rs:212:5:212:39 | ...::build(...) | provenance | Src:MaD:15 MaD:15 |
| main.rs:212:5:212:39 | ...::build(...) | main.rs:212:41:212:46 | finish | provenance | MaD:3 Sink:MaD:3 |
| main.rs:214:9:214:15 | cookie3 | main.rs:215:13:215:19 | cookie3 | provenance | |
| main.rs:214:9:214:15 | cookie3 | main.rs:215:13:215:27 | cookie3.clone() | provenance | MaD:18 |
| main.rs:214:19:214:34 | ...::new | main.rs:214:19:214:51 | ...::new(...) | provenance | Src:MaD:17 MaD:17 |
| main.rs:214:19:214:51 | ...::new(...) | main.rs:214:9:214:15 | cookie3 | provenance | |
| main.rs:215:13:215:19 | cookie3 | main.rs:215:13:215:27 | cookie3.clone() | provenance | MaD:18 |
| main.rs:215:13:215:27 | cookie3.clone() | main.rs:215:9:215:11 | add | provenance | MaD:4 Sink:MaD:4 |
| main.rs:218:5:218:11 | [SSA] cookie2 | main.rs:219:13:219:19 | cookie2 | provenance | |
| main.rs:218:5:218:11 | [SSA] cookie2 | main.rs:219:13:219:27 | cookie2.clone() | provenance | MaD:18 |
| main.rs:218:5:218:11 | cookie2 | main.rs:219:13:219:19 | cookie2 | provenance | |
| main.rs:218:5:218:11 | cookie2 | main.rs:219:13:219:27 | cookie2.clone() | provenance | MaD:18 |
| main.rs:219:13:219:19 | cookie2 | main.rs:219:13:219:27 | cookie2.clone() | provenance | MaD:18 |
| main.rs:219:13:219:27 | cookie2.clone() | main.rs:219:9:219:11 | add | provenance | MaD:4 Sink:MaD:4 |
| main.rs:228:5:228:11 | [SSA] cookie1 | main.rs:229:13:229:19 | cookie1 | provenance | |
| main.rs:228:5:228:11 | [SSA] cookie1 | main.rs:229:13:229:27 | cookie1.clone() | provenance | MaD:18 |
| main.rs:228:5:228:11 | cookie1 | main.rs:229:13:229:19 | cookie1 | provenance | |
| main.rs:228:5:228:11 | cookie1 | main.rs:229:13:229:19 | cookie1 | provenance | MaD:39 |
| main.rs:228:5:228:11 | cookie1 | main.rs:229:13:229:27 | cookie1.clone() | provenance | MaD:39 |
| main.rs:228:5:228:11 | cookie1 | main.rs:229:13:229:27 | cookie1.clone() | provenance | MaD:18 |
| main.rs:229:13:229:19 | cookie1 | main.rs:229:13:229:27 | cookie1.clone() | provenance | MaD:18 |
| main.rs:229:13:229:27 | cookie1.clone() | main.rs:229:9:229:11 | add | provenance | MaD:11 Sink:MaD:11 |
| main.rs:241:9:241:25 | cookie_config_bad | main.rs:242:43:242:59 | cookie_config_bad | provenance | |
| main.rs:241:29:241:62 | ...::new(...) | main.rs:241:29:241:76 | ... .secure(...) | provenance | MaD:38 |
| main.rs:241:29:241:76 | ... .secure(...) | main.rs:241:9:241:25 | cookie_config_bad | provenance | |
| main.rs:242:43:242:59 | cookie_config_bad | main.rs:242:9:242:41 | ...::new | provenance | MaD:10 Sink:MaD:10 |
| main.rs:244:9:244:26 | cookie_config_bad2 | main.rs:245:43:245:60 | cookie_config_bad2 | provenance | |
| main.rs:244:30:244:63 | ...::new(...) | main.rs:244:30:244:77 | ... .secure(...) | provenance | MaD:38 |
| main.rs:244:30:244:77 | ... .secure(...) | main.rs:244:30:244:90 | ... .name(...) | provenance | MaD:36 |
| main.rs:244:30:244:90 | ... .name(...) | main.rs:244:30:244:100 | ... .path(...) | provenance | MaD:37 |
| main.rs:244:30:244:100 | ... .path(...) | main.rs:244:9:244:26 | cookie_config_bad2 | provenance | |
| main.rs:245:43:245:60 | cookie_config_bad2 | main.rs:245:9:245:41 | ...::new | provenance | MaD:10 Sink:MaD:10 |
| main.rs:259:5:259:43 | ...::build(...) | main.rs:259:5:259:57 | ... .secure(...) | provenance | MaD:35 |
| main.rs:259:5:259:57 | ... .secure(...) | main.rs:259:59:259:64 | finish | provenance | MaD:3 Sink:MaD:3 |
| main.rs:260:5:260:43 | ...::build(...) | main.rs:260:5:260:57 | ... .secure(...) | provenance | MaD:35 |
| main.rs:260:5:260:57 | ... .secure(...) | main.rs:260:5:260:67 | ... .path(...) | provenance | MaD:34 |
| main.rs:260:5:260:67 | ... .path(...) | main.rs:260:69:260:74 | finish | provenance | MaD:3 Sink:MaD:3 |
| main.rs:263:5:263:11 | [SSA] cookie1 | main.rs:264:13:264:19 | cookie1 | provenance | |
| main.rs:263:5:263:11 | [SSA] cookie1 | main.rs:264:13:264:27 | cookie1.clone() | provenance | MaD:18 |
| main.rs:263:5:263:11 | cookie1 | main.rs:264:13:264:19 | cookie1 | provenance | |
| main.rs:263:5:263:11 | cookie1 | main.rs:264:13:264:27 | cookie1.clone() | provenance | MaD:18 |
| main.rs:264:13:264:19 | cookie1 | main.rs:264:13:264:27 | cookie1.clone() | provenance | MaD:18 |
| main.rs:264:13:264:27 | cookie1.clone() | main.rs:264:9:264:11 | add | provenance | MaD:4 Sink:MaD:4 |
| main.rs:274:5:274:26 | ...::build | main.rs:274:5:274:43 | ...::build(...) | provenance | Src:MaD:15 MaD:15 |
| main.rs:274:5:274:43 | ...::build(...) | main.rs:274:45:274:50 | finish | provenance | MaD:3 Sink:MaD:3 |
| main.rs:276:9:276:15 | cookie3 | main.rs:277:13:277:19 | cookie3 | provenance | |
| main.rs:276:9:276:15 | cookie3 | main.rs:277:13:277:27 | cookie3.clone() | provenance | MaD:18 |
| main.rs:276:19:276:38 | ...::new | main.rs:276:19:276:55 | ...::new(...) | provenance | Src:MaD:17 MaD:17 |
| main.rs:276:19:276:55 | ...::new(...) | main.rs:276:9:276:15 | cookie3 | provenance | |
| main.rs:277:13:277:19 | cookie3 | main.rs:277:13:277:27 | cookie3.clone() | provenance | MaD:18 |
| main.rs:277:13:277:27 | cookie3.clone() | main.rs:277:9:277:11 | add | provenance | MaD:4 Sink:MaD:4 |
| main.rs:280:5:280:11 | [SSA] cookie2 | main.rs:281:13:281:19 | cookie2 | provenance | |
| main.rs:280:5:280:11 | [SSA] cookie2 | main.rs:281:13:281:27 | cookie2.clone() | provenance | MaD:18 |
| main.rs:280:5:280:11 | cookie2 | main.rs:281:13:281:19 | cookie2 | provenance | |
| main.rs:280:5:280:11 | cookie2 | main.rs:281:13:281:27 | cookie2.clone() | provenance | MaD:18 |
| main.rs:281:13:281:19 | cookie2 | main.rs:281:13:281:27 | cookie2.clone() | provenance | MaD:18 |
| main.rs:281:13:281:27 | cookie2.clone() | main.rs:281:9:281:11 | add | provenance | MaD:4 Sink:MaD:4 |
models models
| 1 | Sink: <biscotti::response_cookies::ResponseCookies>::insert; Argument[0]; cookie-use | | 1 | Sink: <biscotti::response_cookies::ResponseCookies>::insert; Argument[0]; cookie-use |
| 2 | Sink: <cookie::builder::CookieBuilder>::build; Argument[self]; cookie-use | | 2 | Sink: <cookie::builder::CookieBuilder>::build; Argument[self]; cookie-use |
@@ -324,135 +357,103 @@ models
| 7 | Sink: <cookie::secure::private::PrivateJar>::add_original; Argument[0]; cookie-use | | 7 | Sink: <cookie::secure::private::PrivateJar>::add_original; Argument[0]; cookie-use |
| 8 | Sink: <cookie::secure::signed::SignedJar>::add; Argument[0]; cookie-use | | 8 | Sink: <cookie::secure::signed::SignedJar>::add; Argument[0]; cookie-use |
| 9 | Sink: <cookie::secure::signed::SignedJar>::add_original; Argument[0]; cookie-use | | 9 | Sink: <cookie::secure::signed::SignedJar>::add_original; Argument[0]; cookie-use |
| 10 | Source: <biscotti::response_cookie::ResponseCookie as core::convert::From>::from; ReturnValue; cookie-create | | 10 | Sink: <poem::session::server_session::ServerSession>::new; Argument[0]; cookie-use |
| 11 | Source: <biscotti::response_cookie::ResponseCookie>::new; ReturnValue; cookie-create | | 11 | Sink: <poem::web::cookie::CookieJar>::add; Argument[0]; cookie-use |
| 12 | Source: <cookie::Cookie as core::convert::From>::from; ReturnValue; cookie-create | | 12 | Source: <biscotti::response_cookie::ResponseCookie as core::convert::From>::from; ReturnValue; cookie-create |
| 13 | Source: <cookie::Cookie>::build; ReturnValue; cookie-create | | 13 | Source: <biscotti::response_cookie::ResponseCookie>::new; ReturnValue; cookie-create |
| 14 | Source: <cookie::Cookie>::named; ReturnValue; cookie-create | | 14 | Source: <cookie::Cookie as core::convert::From>::from; ReturnValue; cookie-create |
| 15 | Source: <cookie::Cookie>::new; ReturnValue; cookie-create | | 15 | Source: <cookie::Cookie>::build; ReturnValue; cookie-create |
| 16 | Source: <cookie::builder::CookieBuilder>::new; ReturnValue; cookie-create | | 16 | Source: <cookie::Cookie>::named; ReturnValue; cookie-create |
| 17 | Summary: <_ as core::clone::Clone>::clone; Argument[self].Reference; ReturnValue; value | | 17 | Source: <cookie::Cookie>::new; ReturnValue; cookie-create |
| 18 | Summary: <biscotti::response_cookie::ResponseCookie>::make_permanent; Argument[self]; ReturnValue; taint | | 18 | Summary: <_ as core::clone::Clone>::clone; Argument[self].Reference; ReturnValue; value |
| 19 | Summary: <biscotti::response_cookie::ResponseCookie>::set_domain; Argument[self]; ReturnValue; taint | | 19 | Summary: <biscotti::response_cookie::ResponseCookie>::make_permanent; Argument[self]; ReturnValue; taint |
| 20 | Summary: <biscotti::response_cookie::ResponseCookie>::set_expires; Argument[self]; ReturnValue; taint | | 20 | Summary: <biscotti::response_cookie::ResponseCookie>::set_domain; Argument[self]; ReturnValue; taint |
| 21 | Summary: <biscotti::response_cookie::ResponseCookie>::set_http_only; Argument[self]; ReturnValue; taint | | 21 | Summary: <biscotti::response_cookie::ResponseCookie>::set_expires; Argument[self]; ReturnValue; taint |
| 22 | Summary: <biscotti::response_cookie::ResponseCookie>::set_max_age; Argument[self]; ReturnValue; taint | | 22 | Summary: <biscotti::response_cookie::ResponseCookie>::set_http_only; Argument[self]; ReturnValue; taint |
| 23 | Summary: <biscotti::response_cookie::ResponseCookie>::set_name; Argument[self]; ReturnValue; taint | | 23 | Summary: <biscotti::response_cookie::ResponseCookie>::set_max_age; Argument[self]; ReturnValue; taint |
| 24 | Summary: <biscotti::response_cookie::ResponseCookie>::set_partitioned; Argument[self].OptionalBarrier[cookie-partitioned-arg0]; ReturnValue; taint | | 24 | Summary: <biscotti::response_cookie::ResponseCookie>::set_name; Argument[self]; ReturnValue; taint |
| 25 | Summary: <biscotti::response_cookie::ResponseCookie>::set_path; Argument[self]; ReturnValue; taint | | 25 | Summary: <biscotti::response_cookie::ResponseCookie>::set_partitioned; Argument[self].OptionalBarrier[cookie-partitioned-arg0]; ReturnValue; taint |
| 26 | Summary: <biscotti::response_cookie::ResponseCookie>::set_same_site; Argument[self]; ReturnValue; taint | | 26 | Summary: <biscotti::response_cookie::ResponseCookie>::set_path; Argument[self]; ReturnValue; taint |
| 27 | Summary: <biscotti::response_cookie::ResponseCookie>::set_secure; Argument[self].OptionalBarrier[cookie-secure-arg0]; ReturnValue; taint | | 27 | Summary: <biscotti::response_cookie::ResponseCookie>::set_same_site; Argument[self]; ReturnValue; taint |
| 28 | Summary: <biscotti::response_cookie::ResponseCookie>::set_value; Argument[self]; ReturnValue; taint | | 28 | Summary: <biscotti::response_cookie::ResponseCookie>::set_secure; Argument[self].OptionalBarrier[cookie-secure-arg0]; ReturnValue; taint |
| 29 | Summary: <biscotti::response_cookie::ResponseCookie>::unset_domain; Argument[self]; ReturnValue; taint | | 29 | Summary: <biscotti::response_cookie::ResponseCookie>::set_value; Argument[self]; ReturnValue; taint |
| 30 | Summary: <biscotti::response_cookie::ResponseCookie>::unset_expires; Argument[self]; ReturnValue; taint | | 30 | Summary: <biscotti::response_cookie::ResponseCookie>::unset_domain; Argument[self]; ReturnValue; taint |
| 31 | Summary: <biscotti::response_cookie::ResponseCookie>::unset_path; Argument[self]; ReturnValue; taint | | 31 | Summary: <biscotti::response_cookie::ResponseCookie>::unset_expires; Argument[self]; ReturnValue; taint |
| 32 | Summary: <cookie::builder::CookieBuilder>::domain; Argument[self]; ReturnValue; taint | | 32 | Summary: <biscotti::response_cookie::ResponseCookie>::unset_path; Argument[self]; ReturnValue; taint |
| 33 | Summary: <cookie::builder::CookieBuilder>::expires; Argument[self]; ReturnValue; taint | | 33 | Summary: <cookie::builder::CookieBuilder>::partitioned; Argument[self].OptionalBarrier[cookie-partitioned-arg0]; ReturnValue; taint |
| 34 | Summary: <cookie::builder::CookieBuilder>::http_only; Argument[self]; ReturnValue; taint | | 34 | Summary: <cookie::builder::CookieBuilder>::path; Argument[self]; ReturnValue; taint |
| 35 | Summary: <cookie::builder::CookieBuilder>::max_age; Argument[self]; ReturnValue; taint | | 35 | Summary: <cookie::builder::CookieBuilder>::secure; Argument[self].OptionalBarrier[cookie-secure-arg0]; ReturnValue; taint |
| 36 | Summary: <cookie::builder::CookieBuilder>::partitioned; Argument[self].OptionalBarrier[cookie-partitioned-arg0]; ReturnValue; taint | | 36 | Summary: <poem::session::cookie_config::CookieConfig>::name; Argument[self]; ReturnValue; taint |
| 37 | Summary: <cookie::builder::CookieBuilder>::path; Argument[self]; ReturnValue; taint | | 37 | Summary: <poem::session::cookie_config::CookieConfig>::path; Argument[self]; ReturnValue; taint |
| 38 | Summary: <cookie::builder::CookieBuilder>::permanent; Argument[self]; ReturnValue; taint | | 38 | Summary: <poem::session::cookie_config::CookieConfig>::secure; Argument[self].OptionalBarrier[cookie-secure-arg0]; ReturnValue; taint |
| 39 | Summary: <cookie::builder::CookieBuilder>::removal; Argument[self]; ReturnValue; taint | | 39 | Summary: <poem::web::cookie::Cookie>::set_secure; Argument[self].OptionalBarrier[cookie-secure-arg0]; Argument[self]; taint |
| 40 | Summary: <cookie::builder::CookieBuilder>::same_site; Argument[self]; ReturnValue; taint |
| 41 | Summary: <cookie::builder::CookieBuilder>::secure; Argument[self].OptionalBarrier[cookie-secure-arg0]; ReturnValue; taint |
nodes nodes
| main.rs:8:19:8:31 | ...::build | semmle.label | ...::build |
| main.rs:8:19:8:50 | ...::build(...) | semmle.label | ...::build(...) | | main.rs:8:19:8:50 | ...::build(...) | semmle.label | ...::build(...) |
| main.rs:8:19:8:64 | ... .secure(...) | semmle.label | ... .secure(...) | | main.rs:8:19:8:64 | ... .secure(...) | semmle.label | ... .secure(...) |
| main.rs:8:66:8:70 | build | semmle.label | build | | main.rs:8:66:8:70 | build | semmle.label | build |
| main.rs:16:19:16:31 | ...::build | semmle.label | ...::build | | main.rs:16:19:16:31 | ...::build | semmle.label | ...::build |
| main.rs:16:19:16:50 | ...::build(...) | semmle.label | ...::build(...) | | main.rs:16:19:16:50 | ...::build(...) | semmle.label | ...::build(...) |
| main.rs:16:52:16:56 | build | semmle.label | build | | main.rs:16:52:16:56 | build | semmle.label | build |
| main.rs:20:5:20:17 | ...::build | semmle.label | ...::build |
| main.rs:20:5:20:36 | ...::build(...) | semmle.label | ...::build(...) | | main.rs:20:5:20:36 | ...::build(...) | semmle.label | ...::build(...) |
| main.rs:20:5:20:54 | ... .secure(...) | semmle.label | ... .secure(...) | | main.rs:20:5:20:54 | ... .secure(...) | semmle.label | ... .secure(...) |
| main.rs:20:56:20:60 | build | semmle.label | build | | main.rs:20:56:20:60 | build | semmle.label | build |
| main.rs:21:5:21:17 | ...::build | semmle.label | ...::build |
| main.rs:21:5:21:36 | ...::build(...) | semmle.label | ...::build(...) | | main.rs:21:5:21:36 | ...::build(...) | semmle.label | ...::build(...) |
| main.rs:21:5:21:55 | ... .secure(...) | semmle.label | ... .secure(...) | | main.rs:21:5:21:55 | ... .secure(...) | semmle.label | ... .secure(...) |
| main.rs:21:57:21:61 | build | semmle.label | build | | main.rs:21:57:21:61 | build | semmle.label | build |
| main.rs:25:5:25:17 | ...::build | semmle.label | ...::build |
| main.rs:25:5:25:36 | ...::build(...) | semmle.label | ...::build(...) | | main.rs:25:5:25:36 | ...::build(...) | semmle.label | ...::build(...) |
| main.rs:25:5:25:52 | ... .secure(...) | semmle.label | ... .secure(...) | | main.rs:25:5:25:52 | ... .secure(...) | semmle.label | ... .secure(...) |
| main.rs:25:54:25:58 | build | semmle.label | build | | main.rs:25:54:25:58 | build | semmle.label | build |
| main.rs:26:5:26:17 | ...::build | semmle.label | ...::build |
| main.rs:26:5:26:36 | ...::build(...) | semmle.label | ...::build(...) | | main.rs:26:5:26:36 | ...::build(...) | semmle.label | ...::build(...) |
| main.rs:26:5:26:50 | ... .secure(...) | semmle.label | ... .secure(...) | | main.rs:26:5:26:50 | ... .secure(...) | semmle.label | ... .secure(...) |
| main.rs:26:52:26:56 | build | semmle.label | build | | main.rs:26:52:26:56 | build | semmle.label | build |
| main.rs:27:5:27:17 | ...::build | semmle.label | ...::build |
| main.rs:27:5:27:36 | ...::build(...) | semmle.label | ...::build(...) | | main.rs:27:5:27:36 | ...::build(...) | semmle.label | ...::build(...) |
| main.rs:27:5:27:51 | ... .secure(...) | semmle.label | ... .secure(...) | | main.rs:27:5:27:51 | ... .secure(...) | semmle.label | ... .secure(...) |
| main.rs:27:53:27:57 | build | semmle.label | build | | main.rs:27:53:27:57 | build | semmle.label | build |
| main.rs:28:5:28:17 | ...::build | semmle.label | ...::build |
| main.rs:28:5:28:36 | ...::build(...) | semmle.label | ...::build(...) | | main.rs:28:5:28:36 | ...::build(...) | semmle.label | ...::build(...) |
| main.rs:28:5:28:60 | ... .secure(...) | semmle.label | ... .secure(...) | | main.rs:28:5:28:60 | ... .secure(...) | semmle.label | ... .secure(...) |
| main.rs:28:62:28:66 | build | semmle.label | build | | main.rs:28:62:28:66 | build | semmle.label | build |
| main.rs:29:5:29:17 | ...::build | semmle.label | ...::build |
| main.rs:29:5:29:36 | ...::build(...) | semmle.label | ...::build(...) | | main.rs:29:5:29:36 | ...::build(...) | semmle.label | ...::build(...) |
| main.rs:29:5:29:60 | ... .secure(...) | semmle.label | ... .secure(...) | | main.rs:29:5:29:60 | ... .secure(...) | semmle.label | ... .secure(...) |
| main.rs:29:62:29:66 | build | semmle.label | build | | main.rs:29:62:29:66 | build | semmle.label | build |
| main.rs:33:9:33:21 | ...::build | semmle.label | ...::build |
| main.rs:33:9:33:40 | ...::build(...) | semmle.label | ...::build(...) | | main.rs:33:9:33:40 | ...::build(...) | semmle.label | ...::build(...) |
| main.rs:33:9:33:58 | ... .secure(...) | semmle.label | ... .secure(...) | | main.rs:33:9:33:58 | ... .secure(...) | semmle.label | ... .secure(...) |
| main.rs:33:60:33:64 | build | semmle.label | build | | main.rs:33:60:33:64 | build | semmle.label | build |
| main.rs:35:9:35:21 | ...::build | semmle.label | ...::build |
| main.rs:35:9:35:40 | ...::build(...) | semmle.label | ...::build(...) | | main.rs:35:9:35:40 | ...::build(...) | semmle.label | ...::build(...) |
| main.rs:35:9:35:58 | ... .secure(...) | semmle.label | ... .secure(...) | | main.rs:35:9:35:58 | ... .secure(...) | semmle.label | ... .secure(...) |
| main.rs:35:60:35:64 | build | semmle.label | build | | main.rs:35:60:35:64 | build | semmle.label | build |
| main.rs:39:5:39:22 | ...::new | semmle.label | ...::new |
| main.rs:39:5:39:39 | ...::new(...) | semmle.label | ...::new(...) | | main.rs:39:5:39:39 | ...::new(...) | semmle.label | ...::new(...) |
| main.rs:39:5:39:53 | ... .secure(...) | semmle.label | ... .secure(...) | | main.rs:39:5:39:53 | ... .secure(...) | semmle.label | ... .secure(...) |
| main.rs:39:55:39:59 | build | semmle.label | build | | main.rs:39:55:39:59 | build | semmle.label | build |
| main.rs:40:5:40:17 | ...::build | semmle.label | ...::build |
| main.rs:40:5:40:36 | ...::build(...) | semmle.label | ...::build(...) |
| main.rs:40:5:40:50 | ... .expires(...) | semmle.label | ... .expires(...) | | main.rs:40:5:40:50 | ... .expires(...) | semmle.label | ... .expires(...) |
| main.rs:40:5:40:64 | ... .secure(...) | semmle.label | ... .secure(...) | | main.rs:40:5:40:64 | ... .secure(...) | semmle.label | ... .secure(...) |
| main.rs:40:66:40:70 | build | semmle.label | build | | main.rs:40:66:40:70 | build | semmle.label | build |
| main.rs:41:5:41:17 | ...::build | semmle.label | ...::build |
| main.rs:41:5:41:36 | ...::build(...) | semmle.label | ...::build(...) |
| main.rs:41:5:41:79 | ... .max_age(...) | semmle.label | ... .max_age(...) | | main.rs:41:5:41:79 | ... .max_age(...) | semmle.label | ... .max_age(...) |
| main.rs:41:5:41:93 | ... .secure(...) | semmle.label | ... .secure(...) | | main.rs:41:5:41:93 | ... .secure(...) | semmle.label | ... .secure(...) |
| main.rs:41:95:41:99 | build | semmle.label | build | | main.rs:41:95:41:99 | build | semmle.label | build |
| main.rs:42:5:42:17 | ...::build | semmle.label | ...::build |
| main.rs:42:5:42:36 | ...::build(...) | semmle.label | ...::build(...) |
| main.rs:42:5:42:58 | ... .domain(...) | semmle.label | ... .domain(...) | | main.rs:42:5:42:58 | ... .domain(...) | semmle.label | ... .domain(...) |
| main.rs:42:5:42:72 | ... .secure(...) | semmle.label | ... .secure(...) | | main.rs:42:5:42:72 | ... .secure(...) | semmle.label | ... .secure(...) |
| main.rs:42:74:42:78 | build | semmle.label | build | | main.rs:42:74:42:78 | build | semmle.label | build |
| main.rs:43:5:43:17 | ...::build | semmle.label | ...::build |
| main.rs:43:5:43:36 | ...::build(...) | semmle.label | ...::build(...) |
| main.rs:43:5:43:46 | ... .path(...) | semmle.label | ... .path(...) | | main.rs:43:5:43:46 | ... .path(...) | semmle.label | ... .path(...) |
| main.rs:43:5:43:60 | ... .secure(...) | semmle.label | ... .secure(...) | | main.rs:43:5:43:60 | ... .secure(...) | semmle.label | ... .secure(...) |
| main.rs:43:62:43:66 | build | semmle.label | build | | main.rs:43:62:43:66 | build | semmle.label | build |
| main.rs:44:5:44:17 | ...::build | semmle.label | ...::build |
| main.rs:44:5:44:36 | ...::build(...) | semmle.label | ...::build(...) |
| main.rs:44:5:44:52 | ... .http_only(...) | semmle.label | ... .http_only(...) | | main.rs:44:5:44:52 | ... .http_only(...) | semmle.label | ... .http_only(...) |
| main.rs:44:5:44:66 | ... .secure(...) | semmle.label | ... .secure(...) | | main.rs:44:5:44:66 | ... .secure(...) | semmle.label | ... .secure(...) |
| main.rs:44:68:44:72 | build | semmle.label | build | | main.rs:44:68:44:72 | build | semmle.label | build |
| main.rs:45:5:45:17 | ...::build | semmle.label | ...::build |
| main.rs:45:5:45:36 | ...::build(...) | semmle.label | ...::build(...) |
| main.rs:45:5:45:72 | ... .same_site(...) | semmle.label | ... .same_site(...) | | main.rs:45:5:45:72 | ... .same_site(...) | semmle.label | ... .same_site(...) |
| main.rs:45:5:45:86 | ... .secure(...) | semmle.label | ... .secure(...) | | main.rs:45:5:45:86 | ... .secure(...) | semmle.label | ... .secure(...) |
| main.rs:45:88:45:92 | build | semmle.label | build | | main.rs:45:88:45:92 | build | semmle.label | build |
| main.rs:46:5:46:17 | ...::build | semmle.label | ...::build |
| main.rs:46:5:46:36 | ...::build(...) | semmle.label | ...::build(...) |
| main.rs:46:5:46:48 | ... .permanent() | semmle.label | ... .permanent() | | main.rs:46:5:46:48 | ... .permanent() | semmle.label | ... .permanent() |
| main.rs:46:5:46:62 | ... .secure(...) | semmle.label | ... .secure(...) | | main.rs:46:5:46:62 | ... .secure(...) | semmle.label | ... .secure(...) |
| main.rs:46:64:46:68 | build | semmle.label | build | | main.rs:46:64:46:68 | build | semmle.label | build |
| main.rs:47:5:47:17 | ...::build | semmle.label | ...::build |
| main.rs:47:5:47:36 | ...::build(...) | semmle.label | ...::build(...) |
| main.rs:47:5:47:46 | ... .removal() | semmle.label | ... .removal() | | main.rs:47:5:47:46 | ... .removal() | semmle.label | ... .removal() |
| main.rs:47:5:47:60 | ... .secure(...) | semmle.label | ... .secure(...) | | main.rs:47:5:47:60 | ... .secure(...) | semmle.label | ... .secure(...) |
| main.rs:47:62:47:66 | build | semmle.label | build | | main.rs:47:62:47:66 | build | semmle.label | build |
| main.rs:48:5:48:17 | ...::build | semmle.label | ...::build |
| main.rs:48:5:48:36 | ...::build(...) | semmle.label | ...::build(...) | | main.rs:48:5:48:36 | ...::build(...) | semmle.label | ...::build(...) |
| main.rs:48:5:48:50 | ... .secure(...) | semmle.label | ... .secure(...) | | main.rs:48:5:48:50 | ... .secure(...) | semmle.label | ... .secure(...) |
| main.rs:48:52:48:57 | finish | semmle.label | finish | | main.rs:48:52:48:57 | finish | semmle.label | finish |
| main.rs:49:5:49:17 | ...::build | semmle.label | ...::build |
| main.rs:49:5:49:25 | ...::build(...) | semmle.label | ...::build(...) | | main.rs:49:5:49:25 | ...::build(...) | semmle.label | ...::build(...) |
| main.rs:49:5:49:39 | ... .secure(...) | semmle.label | ... .secure(...) | | main.rs:49:5:49:39 | ... .secure(...) | semmle.label | ... .secure(...) |
| main.rs:49:41:49:45 | build | semmle.label | build | | main.rs:49:41:49:45 | build | semmle.label | build |
| main.rs:50:5:50:17 | ...::build | semmle.label | ...::build |
| main.rs:50:5:50:40 | ...::build(...) | semmle.label | ...::build(...) | | main.rs:50:5:50:40 | ...::build(...) | semmle.label | ...::build(...) |
| main.rs:50:5:50:54 | ... .secure(...) | semmle.label | ... .secure(...) | | main.rs:50:5:50:54 | ... .secure(...) | semmle.label | ... .secure(...) |
| main.rs:50:56:50:60 | build | semmle.label | build | | main.rs:50:56:50:60 | build | semmle.label | build |
@@ -594,4 +595,73 @@ nodes
| main.rs:173:22:173:34 | ...::build | semmle.label | ...::build | | main.rs:173:22:173:34 | ...::build | semmle.label | ...::build |
| main.rs:173:22:173:59 | ...::build(...) | semmle.label | ...::build(...) | | main.rs:173:22:173:59 | ...::build(...) | semmle.label | ...::build(...) |
| main.rs:173:61:173:65 | build | semmle.label | build | | main.rs:173:61:173:65 | build | semmle.label | build |
| main.rs:197:5:197:39 | ...::build(...) | semmle.label | ...::build(...) |
| main.rs:197:5:197:53 | ... .secure(...) | semmle.label | ... .secure(...) |
| main.rs:197:55:197:60 | finish | semmle.label | finish |
| main.rs:198:5:198:39 | ...::build(...) | semmle.label | ...::build(...) |
| main.rs:198:5:198:53 | ... .secure(...) | semmle.label | ... .secure(...) |
| main.rs:198:5:198:63 | ... .path(...) | semmle.label | ... .path(...) |
| main.rs:198:65:198:70 | finish | semmle.label | finish |
| main.rs:201:5:201:11 | [SSA] cookie1 | semmle.label | [SSA] cookie1 |
| main.rs:201:5:201:11 | cookie1 | semmle.label | cookie1 |
| main.rs:202:9:202:11 | add | semmle.label | add |
| main.rs:202:13:202:19 | cookie1 | semmle.label | cookie1 |
| main.rs:202:13:202:27 | cookie1.clone() | semmle.label | cookie1.clone() |
| main.rs:212:5:212:22 | ...::build | semmle.label | ...::build |
| main.rs:212:5:212:39 | ...::build(...) | semmle.label | ...::build(...) |
| main.rs:212:41:212:46 | finish | semmle.label | finish |
| main.rs:214:9:214:15 | cookie3 | semmle.label | cookie3 |
| main.rs:214:19:214:34 | ...::new | semmle.label | ...::new |
| main.rs:214:19:214:51 | ...::new(...) | semmle.label | ...::new(...) |
| main.rs:215:9:215:11 | add | semmle.label | add |
| main.rs:215:13:215:19 | cookie3 | semmle.label | cookie3 |
| main.rs:215:13:215:27 | cookie3.clone() | semmle.label | cookie3.clone() |
| main.rs:218:5:218:11 | [SSA] cookie2 | semmle.label | [SSA] cookie2 |
| main.rs:218:5:218:11 | cookie2 | semmle.label | cookie2 |
| main.rs:219:9:219:11 | add | semmle.label | add |
| main.rs:219:13:219:19 | cookie2 | semmle.label | cookie2 |
| main.rs:219:13:219:27 | cookie2.clone() | semmle.label | cookie2.clone() |
| main.rs:228:5:228:11 | [SSA] cookie1 | semmle.label | [SSA] cookie1 |
| main.rs:228:5:228:11 | cookie1 | semmle.label | cookie1 |
| main.rs:229:9:229:11 | add | semmle.label | add |
| main.rs:229:13:229:19 | cookie1 | semmle.label | cookie1 |
| main.rs:229:13:229:27 | cookie1.clone() | semmle.label | cookie1.clone() |
| main.rs:241:9:241:25 | cookie_config_bad | semmle.label | cookie_config_bad |
| main.rs:241:29:241:62 | ...::new(...) | semmle.label | ...::new(...) |
| main.rs:241:29:241:76 | ... .secure(...) | semmle.label | ... .secure(...) |
| main.rs:242:9:242:41 | ...::new | semmle.label | ...::new |
| main.rs:242:43:242:59 | cookie_config_bad | semmle.label | cookie_config_bad |
| main.rs:244:9:244:26 | cookie_config_bad2 | semmle.label | cookie_config_bad2 |
| main.rs:244:30:244:63 | ...::new(...) | semmle.label | ...::new(...) |
| main.rs:244:30:244:77 | ... .secure(...) | semmle.label | ... .secure(...) |
| main.rs:244:30:244:90 | ... .name(...) | semmle.label | ... .name(...) |
| main.rs:244:30:244:100 | ... .path(...) | semmle.label | ... .path(...) |
| main.rs:245:9:245:41 | ...::new | semmle.label | ...::new |
| main.rs:245:43:245:60 | cookie_config_bad2 | semmle.label | cookie_config_bad2 |
| main.rs:259:5:259:43 | ...::build(...) | semmle.label | ...::build(...) |
| main.rs:259:5:259:57 | ... .secure(...) | semmle.label | ... .secure(...) |
| main.rs:259:59:259:64 | finish | semmle.label | finish |
| main.rs:260:5:260:43 | ...::build(...) | semmle.label | ...::build(...) |
| main.rs:260:5:260:57 | ... .secure(...) | semmle.label | ... .secure(...) |
| main.rs:260:5:260:67 | ... .path(...) | semmle.label | ... .path(...) |
| main.rs:260:69:260:74 | finish | semmle.label | finish |
| main.rs:263:5:263:11 | [SSA] cookie1 | semmle.label | [SSA] cookie1 |
| main.rs:263:5:263:11 | cookie1 | semmle.label | cookie1 |
| main.rs:264:9:264:11 | add | semmle.label | add |
| main.rs:264:13:264:19 | cookie1 | semmle.label | cookie1 |
| main.rs:264:13:264:27 | cookie1.clone() | semmle.label | cookie1.clone() |
| main.rs:274:5:274:26 | ...::build | semmle.label | ...::build |
| main.rs:274:5:274:43 | ...::build(...) | semmle.label | ...::build(...) |
| main.rs:274:45:274:50 | finish | semmle.label | finish |
| main.rs:276:9:276:15 | cookie3 | semmle.label | cookie3 |
| main.rs:276:19:276:38 | ...::new | semmle.label | ...::new |
| main.rs:276:19:276:55 | ...::new(...) | semmle.label | ...::new(...) |
| main.rs:277:9:277:11 | add | semmle.label | add |
| main.rs:277:13:277:19 | cookie3 | semmle.label | cookie3 |
| main.rs:277:13:277:27 | cookie3.clone() | semmle.label | cookie3.clone() |
| main.rs:280:5:280:11 | [SSA] cookie2 | semmle.label | [SSA] cookie2 |
| main.rs:280:5:280:11 | cookie2 | semmle.label | cookie2 |
| main.rs:281:9:281:11 | add | semmle.label | add |
| main.rs:281:13:281:19 | cookie2 | semmle.label | cookie2 |
| main.rs:281:13:281:27 | cookie2.clone() | semmle.label | cookie2.clone() |
subpaths subpaths

View File

@@ -188,9 +188,105 @@ fn test_qhelp_examples() {
} }
} }
fn test_actix_web() {
// actix-web re-exports the cookie crate
use actix_web::cookie::Cookie as ActixCookie;
let mut jar = actix_web::cookie::CookieJar::new();
// secure set to false
ActixCookie::build("name", "value").secure(false).finish(); // $ Alert[rust/insecure-cookie]
ActixCookie::build("name", "value").secure(false).path("/").finish(); // $ Alert[rust/insecure-cookie]
let mut cookie1 = ActixCookie::new("name", "value");
cookie1.set_secure(false); // $ Source
jar.add(cookie1.clone()); // $ Alert[rust/insecure-cookie]
// secure set to true
ActixCookie::build("name", "value").secure(true).finish(); // good
let mut cookie2 = ActixCookie::new("name", "value");
cookie2.set_secure(true); // good
jar.add(cookie2.clone());
// secure left as default
ActixCookie::build("name", "value").finish(); // $ Alert[rust/insecure-cookie]
let cookie3 = ActixCookie::new("name", "value"); // $ Source
jar.add(cookie3.clone()); // $ Alert[rust/insecure-cookie]
// secure reset to None
cookie2.set_secure(None); // $ Source
jar.add(cookie2.clone()); // $ Alert[rust/insecure-cookie]
}
fn test_poem() {
use poem::web::cookie::Cookie as PoemCookie;
let mut jar = poem::web::cookie::CookieJar::default();
// secure set to false
let mut cookie1 = PoemCookie::new_with_str("name", "value");
cookie1.set_secure(false); // $ Source
jar.add(cookie1.clone()); // $ Alert[rust/insecure-cookie]
// secure set to true
let mut cookie2 = PoemCookie::new_with_str("name", "value");
cookie2.set_secure(true); // good
jar.add(cookie2.clone());
// secure left as default (which is `true` for Poem)
let cookie3 = PoemCookie::new_with_str("name", "value");
jar.add(cookie3.clone()); // good
// set secure via CookieConfig
let cookie_config_bad = poem::session::CookieConfig::new().secure(false); // $ Source
_ = poem::session::ServerSession::new(cookie_config_bad, ()); // $ Alert[rust/insecure-cookie]
let cookie_config_bad2 = poem::session::CookieConfig::new().secure(false).name("name").path("/"); // $ Source
_ = poem::session::ServerSession::new(cookie_config_bad2, ()); // $ Alert[rust/insecure-cookie]
let cookie_config_good = poem::session::CookieConfig::new().secure(true);
_ = poem::session::ServerSession::new(cookie_config_good, ()); // good
let cookie_config_default = poem::session::CookieConfig::new();
_ = poem::session::ServerSession::new(cookie_config_default, ()); // good
}
fn test_http_types() {
use http_types::Cookie as HttpTypesCookie;
let mut jar = http_types::cookies::CookieJar::default();
// secure set to false
HttpTypesCookie::build("name", "value").secure(false).finish(); // $ Alert[rust/insecure-cookie]
HttpTypesCookie::build("name", "value").secure(false).path("/").finish(); // $ Alert[rust/insecure-cookie]
let mut cookie1 = HttpTypesCookie::new("name", "value");
cookie1.set_secure(false); // $ Source
jar.add(cookie1.clone()); // $ Alert[rust/insecure-cookie]
// secure set to true
HttpTypesCookie::build("name", "value").secure(true).finish(); // good
let mut cookie2 = HttpTypesCookie::new("name", "value");
cookie2.set_secure(true); // good
jar.add(cookie2.clone());
// secure left as default
HttpTypesCookie::build("name", "value").finish(); // $ Alert[rust/insecure-cookie]
let cookie3 = HttpTypesCookie::new("name", "value"); // $ Source
jar.add(cookie3.clone()); // $ Alert[rust/insecure-cookie]
// secure reset to None
cookie2.set_secure(None); // $ Source
jar.add(cookie2.clone()); // $ Alert[rust/insecure-cookie]
}
fn main() { fn main() {
test_cookie(true); test_cookie(true);
test_cookie(false); test_cookie(false);
test_biscotti(); test_biscotti();
test_qhelp_examples(); test_qhelp_examples();
test_actix_web();
test_poem();
test_http_types();
} }

View File

@@ -2,3 +2,6 @@ qltest_cargo_check: true
qltest_dependencies: qltest_dependencies:
- cookie = { version = "0.18.1", features = ["percent-encode", "signed", "private"] } - cookie = { version = "0.18.1", features = ["percent-encode", "signed", "private"] }
- biscotti = { version = "0.4.3" } - biscotti = { version = "0.4.3" }
- actix-web = { version = "4", features = ["cookies"] }
- poem = { version = "3", features = ["cookie", "session"] }
- http-types = { version = "2", features = ["cookies"] }