From de873472152464059e6387647db69db5e921a7e2 Mon Sep 17 00:00:00 2001 From: Nikita Kraiouchkine Date: Fri, 12 May 2023 14:17:07 +0200 Subject: [PATCH] Add tests and update scripts for part 3 --- README.md | 2 +- .../Exercise13/Exercise13.expected | 92 ++++++++++++++++ exercises-tests/Exercise13/Exercise13.qlref | 1 + .../Exercise14/Exercise14.expected | 69 ++++++++++++ exercises-tests/Exercise14/Exercise14.qlref | 1 + .../Exercise15/Exercise15.expected | 104 ++++++++++++++++++ exercises-tests/Exercise15/Exercise15.qlref | 1 + .../Exercise16/Exercise16.expected | 104 ++++++++++++++++++ exercises-tests/Exercise16/Exercise16.qlref | 1 + initialize-qltests.sh | 6 +- .../Exercise13/Exercise13.expected | 92 ++++++++++++++++ solutions-tests/Exercise13/Exercise13.qlref | 1 + .../Exercise14/Exercise14.expected | 69 ++++++++++++ solutions-tests/Exercise14/Exercise14.qlref | 1 + .../Exercise15/Exercise15.expected | 104 ++++++++++++++++++ solutions-tests/Exercise15/Exercise15.qlref | 1 + .../Exercise16/Exercise16.expected | 104 ++++++++++++++++++ solutions-tests/Exercise16/Exercise16.qlref | 1 + 18 files changed, 750 insertions(+), 4 deletions(-) create mode 100644 exercises-tests/Exercise13/Exercise13.expected create mode 100644 exercises-tests/Exercise13/Exercise13.qlref create mode 100644 exercises-tests/Exercise14/Exercise14.expected create mode 100644 exercises-tests/Exercise14/Exercise14.qlref create mode 100644 exercises-tests/Exercise15/Exercise15.expected create mode 100644 exercises-tests/Exercise15/Exercise15.qlref create mode 100644 exercises-tests/Exercise16/Exercise16.expected create mode 100644 exercises-tests/Exercise16/Exercise16.qlref create mode 100644 solutions-tests/Exercise13/Exercise13.expected create mode 100644 solutions-tests/Exercise13/Exercise13.qlref create mode 100644 solutions-tests/Exercise14/Exercise14.expected create mode 100644 solutions-tests/Exercise14/Exercise14.qlref create mode 100644 solutions-tests/Exercise15/Exercise15.expected create mode 100644 solutions-tests/Exercise15/Exercise15.qlref create mode 100644 solutions-tests/Exercise16/Exercise16.expected create mode 100644 solutions-tests/Exercise16/Exercise16.qlref diff --git a/README.md b/README.md index abd6501..96a2aa1 100644 --- a/README.md +++ b/README.md @@ -347,7 +347,7 @@ It helps to approach implementing each predicate with an understanding of its pu Reimplement the new `isSource` and `isSink` predicates to bind state to `TypeUnvalidatedState`. Ignore the `isAdditionalFlowStep/4` and `isBarrier/2` predicates for now; they will be used in a later exercise. -You should see the same results as in Exercise 12. +You should see the same results as in Exercise 12 (92 results). ### Exercise 14 There are two primary ways to define state along a path: diff --git a/exercises-tests/Exercise13/Exercise13.expected b/exercises-tests/Exercise13/Exercise13.expected new file mode 100644 index 0000000..0fd346f --- /dev/null +++ b/exercises-tests/Exercise13/Exercise13.expected @@ -0,0 +1,92 @@ +edges +| test.c:31:35:31:39 | input | test.c:32:10:32:14 | input | +| test.c:31:35:31:39 | input | test.c:32:28:32:32 | input | +| test.c:31:35:31:39 | input | test.c:33:10:33:14 | input | +| test.c:36:48:36:52 | input | test.c:38:10:38:14 | input | +| test.c:36:48:36:52 | input | test.c:38:28:38:32 | input | +| test.c:36:48:36:52 | input | test.c:39:10:39:14 | input | +| test.c:36:48:36:52 | input | test.c:40:19:40:23 | input | +| test.c:36:48:36:52 | input | test.c:46:10:46:14 | input | +| test.c:36:48:36:52 | input | test.c:46:28:46:32 | input | +| test.c:36:48:36:52 | input | test.c:47:10:47:14 | input | +| test.c:36:48:36:52 | input | test.c:48:19:48:23 | input | +| test.c:36:48:36:52 | input | test.c:51:12:51:16 | input | +| test.c:36:48:36:52 | input | test.c:51:30:51:34 | input | +| test.c:36:48:36:52 | input | test.c:52:12:52:16 | input | +| test.c:36:48:36:52 | input | test.c:55:21:55:25 | input | +| test.c:36:48:36:52 | input | test.c:65:19:65:23 | input | +| test.c:40:19:40:23 | input | test.c:31:35:31:39 | input | +| test.c:48:19:48:23 | input | test.c:31:35:31:39 | input | +| test.c:55:21:55:25 | input | test.c:31:35:31:39 | input | +| test.c:65:19:65:23 | input | test.c:31:35:31:39 | input | +| test.c:70:28:70:32 | input | test.c:74:19:74:23 | input | +| test.c:70:28:70:32 | input | test.c:75:21:75:25 | input | +| test.c:70:28:70:32 | input | test.c:79:16:79:20 | input | +| test.c:70:28:70:32 | input | test.c:80:16:80:20 | input | +| test.c:75:21:75:25 | input | test.c:31:35:31:39 | input | +| test.c:84:35:84:39 | input | test.c:89:26:89:30 | input | +| test.c:84:35:84:39 | input | test.c:93:10:93:14 | input | +| test.c:84:35:84:39 | input | test.c:93:29:93:33 | input | +| test.c:104:29:104:33 | input | test.c:105:22:105:26 | input | +| test.c:105:22:105:26 | input | test.c:36:48:36:52 | input | +| test.c:108:30:108:34 | input | test.c:109:20:109:24 | input | +| test.c:109:20:109:24 | input | test.c:70:28:70:32 | input | +| test.c:112:37:112:41 | input | test.c:113:27:113:31 | input | +| test.c:113:27:113:31 | input | test.c:84:35:84:39 | input | +nodes +| test.c:31:35:31:39 | input | semmle.label | input | +| test.c:32:10:32:14 | input | semmle.label | input | +| test.c:32:28:32:32 | input | semmle.label | input | +| test.c:33:10:33:14 | input | semmle.label | input | +| test.c:36:48:36:52 | input | semmle.label | input | +| test.c:38:10:38:14 | input | semmle.label | input | +| test.c:38:28:38:32 | input | semmle.label | input | +| test.c:39:10:39:14 | input | semmle.label | input | +| test.c:40:19:40:23 | input | semmle.label | input | +| test.c:46:10:46:14 | input | semmle.label | input | +| test.c:46:28:46:32 | input | semmle.label | input | +| test.c:47:10:47:14 | input | semmle.label | input | +| test.c:48:19:48:23 | input | semmle.label | input | +| test.c:51:12:51:16 | input | semmle.label | input | +| test.c:51:30:51:34 | input | semmle.label | input | +| test.c:52:12:52:16 | input | semmle.label | input | +| test.c:55:21:55:25 | input | semmle.label | input | +| test.c:65:19:65:23 | input | semmle.label | input | +| test.c:70:28:70:32 | input | semmle.label | input | +| test.c:74:19:74:23 | input | semmle.label | input | +| test.c:75:21:75:25 | input | semmle.label | input | +| test.c:79:16:79:20 | input | semmle.label | input | +| test.c:80:16:80:20 | input | semmle.label | input | +| test.c:84:35:84:39 | input | semmle.label | input | +| test.c:89:26:89:30 | input | semmle.label | input | +| test.c:93:10:93:14 | input | semmle.label | input | +| test.c:93:29:93:33 | input | semmle.label | input | +| test.c:104:29:104:33 | input | semmle.label | input | +| test.c:105:22:105:26 | input | semmle.label | input | +| test.c:108:30:108:34 | input | semmle.label | input | +| test.c:109:20:109:24 | input | semmle.label | input | +| test.c:112:37:112:41 | input | semmle.label | input | +| test.c:113:27:113:31 | input | semmle.label | input | +subpaths +#select +| test.c:32:10:32:14 | input | test.c:104:29:104:33 | input | test.c:32:10:32:14 | input | Access to dynamic input array with missing or mismatched type validation. | +| test.c:32:10:32:14 | input | test.c:108:30:108:34 | input | test.c:32:10:32:14 | input | Access to dynamic input array with missing or mismatched type validation. | +| test.c:32:28:32:32 | input | test.c:104:29:104:33 | input | test.c:32:28:32:32 | input | Access to dynamic input array with missing or mismatched type validation. | +| test.c:32:28:32:32 | input | test.c:108:30:108:34 | input | test.c:32:28:32:32 | input | Access to dynamic input array with missing or mismatched type validation. | +| test.c:33:10:33:14 | input | test.c:104:29:104:33 | input | test.c:33:10:33:14 | input | Access to dynamic input array with missing or mismatched type validation. | +| test.c:33:10:33:14 | input | test.c:108:30:108:34 | input | test.c:33:10:33:14 | input | Access to dynamic input array with missing or mismatched type validation. | +| test.c:38:10:38:14 | input | test.c:104:29:104:33 | input | test.c:38:10:38:14 | input | Access to dynamic input array with missing or mismatched type validation. | +| test.c:38:28:38:32 | input | test.c:104:29:104:33 | input | test.c:38:28:38:32 | input | Access to dynamic input array with missing or mismatched type validation. | +| test.c:39:10:39:14 | input | test.c:104:29:104:33 | input | test.c:39:10:39:14 | input | Access to dynamic input array with missing or mismatched type validation. | +| test.c:46:10:46:14 | input | test.c:104:29:104:33 | input | test.c:46:10:46:14 | input | Access to dynamic input array with missing or mismatched type validation. | +| test.c:46:28:46:32 | input | test.c:104:29:104:33 | input | test.c:46:28:46:32 | input | Access to dynamic input array with missing or mismatched type validation. | +| test.c:47:10:47:14 | input | test.c:104:29:104:33 | input | test.c:47:10:47:14 | input | Access to dynamic input array with missing or mismatched type validation. | +| test.c:51:12:51:16 | input | test.c:104:29:104:33 | input | test.c:51:12:51:16 | input | Access to dynamic input array with missing or mismatched type validation. | +| test.c:51:30:51:34 | input | test.c:104:29:104:33 | input | test.c:51:30:51:34 | input | Access to dynamic input array with missing or mismatched type validation. | +| test.c:52:12:52:16 | input | test.c:104:29:104:33 | input | test.c:52:12:52:16 | input | Access to dynamic input array with missing or mismatched type validation. | +| test.c:74:19:74:23 | input | test.c:108:30:108:34 | input | test.c:74:19:74:23 | input | Access to dynamic input array with missing or mismatched type validation. | +| test.c:79:16:79:20 | input | test.c:108:30:108:34 | input | test.c:79:16:79:20 | input | Access to dynamic input array with missing or mismatched type validation. | +| test.c:80:16:80:20 | input | test.c:108:30:108:34 | input | test.c:80:16:80:20 | input | Access to dynamic input array with missing or mismatched type validation. | +| test.c:89:26:89:30 | input | test.c:112:37:112:41 | input | test.c:89:26:89:30 | input | Access to dynamic input array with missing or mismatched type validation. | +| test.c:93:10:93:14 | input | test.c:112:37:112:41 | input | test.c:93:10:93:14 | input | Access to dynamic input array with missing or mismatched type validation. | +| test.c:93:29:93:33 | input | test.c:112:37:112:41 | input | test.c:93:29:93:33 | input | Access to dynamic input array with missing or mismatched type validation. | diff --git a/exercises-tests/Exercise13/Exercise13.qlref b/exercises-tests/Exercise13/Exercise13.qlref new file mode 100644 index 0000000..2b03ec4 --- /dev/null +++ b/exercises-tests/Exercise13/Exercise13.qlref @@ -0,0 +1 @@ +Exercise13.ql \ No newline at end of file diff --git a/exercises-tests/Exercise14/Exercise14.expected b/exercises-tests/Exercise14/Exercise14.expected new file mode 100644 index 0000000..de48c61 --- /dev/null +++ b/exercises-tests/Exercise14/Exercise14.expected @@ -0,0 +1,69 @@ +| test.c:48:19:48:23 | input | test.c:55:21:55:25 | input | test.c:53:14:53:27 | call to DYN_INPUT_TYPE | +| test.c:58:7:58:17 | Phi | test.c:63:10:63:14 | input | test.c:58:22:58:35 | call to DYN_INPUT_TYPE | +| test.c:58:7:58:17 | Phi | test.c:63:23:63:25 | buf | test.c:58:22:58:35 | call to DYN_INPUT_TYPE | +| test.c:58:7:58:17 | Phi | test.c:63:41:63:43 | buf | test.c:58:22:58:35 | call to DYN_INPUT_TYPE | +| test.c:58:7:58:17 | Phi | test.c:64:23:64:26 | size | test.c:58:22:58:35 | call to DYN_INPUT_TYPE | +| test.c:63:23:63:25 | buf indirection | test.c:63:10:63:14 | input | test.c:58:22:58:35 | call to DYN_INPUT_TYPE | +| test.c:63:23:63:25 | buf indirection | test.c:63:23:63:25 | buf | test.c:58:22:58:35 | call to DYN_INPUT_TYPE | +| test.c:63:23:63:25 | buf indirection | test.c:63:41:63:43 | buf | test.c:58:22:58:35 | call to DYN_INPUT_TYPE | +| test.c:63:23:63:25 | buf indirection | test.c:64:23:64:26 | size | test.c:58:22:58:35 | call to DYN_INPUT_TYPE | +| test.c:63:41:63:43 | buf indirection | test.c:63:10:63:14 | input | test.c:58:22:58:35 | call to DYN_INPUT_TYPE | +| test.c:63:41:63:43 | buf indirection | test.c:63:23:63:25 | buf | test.c:58:22:58:35 | call to DYN_INPUT_TYPE | +| test.c:63:41:63:43 | buf indirection | test.c:63:41:63:43 | buf | test.c:58:22:58:35 | call to DYN_INPUT_TYPE | +| test.c:63:41:63:43 | buf indirection | test.c:64:23:64:26 | size | test.c:58:22:58:35 | call to DYN_INPUT_TYPE | +| test.c:64:23:64:26 | size indirection | test.c:63:10:63:14 | input | test.c:58:22:58:35 | call to DYN_INPUT_TYPE | +| test.c:64:23:64:26 | size indirection | test.c:63:23:63:25 | buf | test.c:58:22:58:35 | call to DYN_INPUT_TYPE | +| test.c:64:23:64:26 | size indirection | test.c:63:41:63:43 | buf | test.c:58:22:58:35 | call to DYN_INPUT_TYPE | +| test.c:64:23:64:26 | size indirection | test.c:64:23:64:26 | size | test.c:58:22:58:35 | call to DYN_INPUT_TYPE | +| test.c:70:28:70:32 | input indirection | test.c:72:18:72:22 | input | test.c:71:22:71:35 | call to DYN_INPUT_TYPE | +| test.c:70:28:70:32 | input indirection | test.c:72:18:72:31 | ... ++ | test.c:71:22:71:35 | call to DYN_INPUT_TYPE | +| test.c:70:28:70:32 | input indirection | test.c:72:27:72:29 | val | test.c:71:22:71:35 | call to DYN_INPUT_TYPE | +| test.c:70:28:70:32 | input indirection | test.c:73:18:73:31 | ... ++ | test.c:71:22:71:35 | call to DYN_INPUT_TYPE | +| test.c:70:28:70:32 | input indirection | test.c:73:27:73:29 | val | test.c:71:22:71:35 | call to DYN_INPUT_TYPE | +| test.c:70:28:70:32 | input indirection | test.c:74:32:74:35 | size | test.c:71:22:71:35 | call to DYN_INPUT_TYPE | +| test.c:72:27:72:29 | val | test.c:72:18:72:22 | input | test.c:71:22:71:35 | call to DYN_INPUT_TYPE | +| test.c:72:27:72:29 | val | test.c:72:18:72:31 | ... ++ | test.c:71:22:71:35 | call to DYN_INPUT_TYPE | +| test.c:72:27:72:29 | val | test.c:72:27:72:29 | val | test.c:71:22:71:35 | call to DYN_INPUT_TYPE | +| test.c:72:27:72:29 | val | test.c:73:18:73:31 | ... ++ | test.c:71:22:71:35 | call to DYN_INPUT_TYPE | +| test.c:72:27:72:29 | val | test.c:73:27:73:29 | val | test.c:71:22:71:35 | call to DYN_INPUT_TYPE | +| test.c:72:27:72:29 | val | test.c:74:32:74:35 | size | test.c:71:22:71:35 | call to DYN_INPUT_TYPE | +| test.c:72:27:72:29 | val indirection | test.c:72:18:72:22 | input | test.c:71:22:71:35 | call to DYN_INPUT_TYPE | +| test.c:72:27:72:29 | val indirection | test.c:72:18:72:31 | ... ++ | test.c:71:22:71:35 | call to DYN_INPUT_TYPE | +| test.c:72:27:72:29 | val indirection | test.c:72:27:72:29 | val | test.c:71:22:71:35 | call to DYN_INPUT_TYPE | +| test.c:72:27:72:29 | val indirection | test.c:73:18:73:31 | ... ++ | test.c:71:22:71:35 | call to DYN_INPUT_TYPE | +| test.c:72:27:72:29 | val indirection | test.c:73:27:73:29 | val | test.c:71:22:71:35 | call to DYN_INPUT_TYPE | +| test.c:72:27:72:29 | val indirection | test.c:74:32:74:35 | size | test.c:71:22:71:35 | call to DYN_INPUT_TYPE | +| test.c:73:27:73:29 | val | test.c:72:18:72:22 | input | test.c:71:22:71:35 | call to DYN_INPUT_TYPE | +| test.c:73:27:73:29 | val | test.c:72:18:72:31 | ... ++ | test.c:71:22:71:35 | call to DYN_INPUT_TYPE | +| test.c:73:27:73:29 | val | test.c:72:27:72:29 | val | test.c:71:22:71:35 | call to DYN_INPUT_TYPE | +| test.c:73:27:73:29 | val | test.c:73:18:73:31 | ... ++ | test.c:71:22:71:35 | call to DYN_INPUT_TYPE | +| test.c:73:27:73:29 | val | test.c:73:27:73:29 | val | test.c:71:22:71:35 | call to DYN_INPUT_TYPE | +| test.c:73:27:73:29 | val | test.c:74:32:74:35 | size | test.c:71:22:71:35 | call to DYN_INPUT_TYPE | +| test.c:73:27:73:29 | val indirection | test.c:72:18:72:22 | input | test.c:71:22:71:35 | call to DYN_INPUT_TYPE | +| test.c:73:27:73:29 | val indirection | test.c:72:18:72:31 | ... ++ | test.c:71:22:71:35 | call to DYN_INPUT_TYPE | +| test.c:73:27:73:29 | val indirection | test.c:72:27:72:29 | val | test.c:71:22:71:35 | call to DYN_INPUT_TYPE | +| test.c:73:27:73:29 | val indirection | test.c:73:18:73:31 | ... ++ | test.c:71:22:71:35 | call to DYN_INPUT_TYPE | +| test.c:73:27:73:29 | val indirection | test.c:73:27:73:29 | val | test.c:71:22:71:35 | call to DYN_INPUT_TYPE | +| test.c:73:27:73:29 | val indirection | test.c:74:32:74:35 | size | test.c:71:22:71:35 | call to DYN_INPUT_TYPE | +| test.c:74:32:74:35 | size indirection | test.c:72:18:72:22 | input | test.c:71:22:71:35 | call to DYN_INPUT_TYPE | +| test.c:74:32:74:35 | size indirection | test.c:72:18:72:31 | ... ++ | test.c:71:22:71:35 | call to DYN_INPUT_TYPE | +| test.c:74:32:74:35 | size indirection | test.c:72:27:72:29 | val | test.c:71:22:71:35 | call to DYN_INPUT_TYPE | +| test.c:74:32:74:35 | size indirection | test.c:73:18:73:31 | ... ++ | test.c:71:22:71:35 | call to DYN_INPUT_TYPE | +| test.c:74:32:74:35 | size indirection | test.c:73:27:73:29 | val | test.c:71:22:71:35 | call to DYN_INPUT_TYPE | +| test.c:74:32:74:35 | size indirection | test.c:74:32:74:35 | size | test.c:71:22:71:35 | call to DYN_INPUT_TYPE | +| test.c:84:35:84:39 | input indirection | test.c:86:12:86:16 | input | test.c:85:22:85:35 | call to DYN_INPUT_TYPE | +| test.c:84:35:84:39 | input indirection | test.c:86:25:86:27 | buf | test.c:85:22:85:35 | call to DYN_INPUT_TYPE | +| test.c:84:35:84:39 | input indirection | test.c:88:12:89:42 | * ... | test.c:85:22:85:35 | call to DYN_INPUT_TYPE | +| test.c:84:35:84:39 | input indirection | test.c:89:39:89:41 | buf | test.c:85:22:85:35 | call to DYN_INPUT_TYPE | +| test.c:86:25:86:27 | buf indirection | test.c:86:12:86:16 | input | test.c:85:22:85:35 | call to DYN_INPUT_TYPE | +| test.c:86:25:86:27 | buf indirection | test.c:86:25:86:27 | buf | test.c:85:22:85:35 | call to DYN_INPUT_TYPE | +| test.c:86:25:86:27 | buf indirection | test.c:88:12:89:42 | * ... | test.c:85:22:85:35 | call to DYN_INPUT_TYPE | +| test.c:86:25:86:27 | buf indirection | test.c:89:39:89:41 | buf | test.c:85:22:85:35 | call to DYN_INPUT_TYPE | +| test.c:88:13:89:42 | buf indirection | test.c:86:12:86:16 | input | test.c:85:22:85:35 | call to DYN_INPUT_TYPE | +| test.c:88:13:89:42 | buf indirection | test.c:86:25:86:27 | buf | test.c:85:22:85:35 | call to DYN_INPUT_TYPE | +| test.c:88:13:89:42 | buf indirection | test.c:88:12:89:42 | * ... | test.c:85:22:85:35 | call to DYN_INPUT_TYPE | +| test.c:88:13:89:42 | buf indirection | test.c:89:39:89:41 | buf | test.c:85:22:85:35 | call to DYN_INPUT_TYPE | +| test.c:89:39:89:41 | buf indirection | test.c:86:12:86:16 | input | test.c:85:22:85:35 | call to DYN_INPUT_TYPE | +| test.c:89:39:89:41 | buf indirection | test.c:86:25:86:27 | buf | test.c:85:22:85:35 | call to DYN_INPUT_TYPE | +| test.c:89:39:89:41 | buf indirection | test.c:88:12:89:42 | * ... | test.c:85:22:85:35 | call to DYN_INPUT_TYPE | +| test.c:89:39:89:41 | buf indirection | test.c:89:39:89:41 | buf | test.c:85:22:85:35 | call to DYN_INPUT_TYPE | diff --git a/exercises-tests/Exercise14/Exercise14.qlref b/exercises-tests/Exercise14/Exercise14.qlref new file mode 100644 index 0000000..3f1c393 --- /dev/null +++ b/exercises-tests/Exercise14/Exercise14.qlref @@ -0,0 +1 @@ +Exercise14.ql \ No newline at end of file diff --git a/exercises-tests/Exercise15/Exercise15.expected b/exercises-tests/Exercise15/Exercise15.expected new file mode 100644 index 0000000..79fab72 --- /dev/null +++ b/exercises-tests/Exercise15/Exercise15.expected @@ -0,0 +1,104 @@ +edges +| test.c:31:35:31:39 | input | test.c:32:10:32:14 | input | +| test.c:31:35:31:39 | input | test.c:32:10:32:14 | input | +| test.c:31:35:31:39 | input | test.c:32:10:32:14 | input | +| test.c:31:35:31:39 | input | test.c:32:28:32:32 | input | +| test.c:31:35:31:39 | input | test.c:32:28:32:32 | input | +| test.c:31:35:31:39 | input | test.c:33:10:33:14 | input | +| test.c:31:35:31:39 | input | test.c:33:10:33:14 | input | +| test.c:36:48:36:52 | input | test.c:38:10:38:14 | input | +| test.c:36:48:36:52 | input | test.c:38:28:38:32 | input | +| test.c:36:48:36:52 | input | test.c:39:10:39:14 | input | +| test.c:36:48:36:52 | input | test.c:40:19:40:23 | input | +| test.c:36:48:36:52 | input | test.c:46:10:46:14 | input | +| test.c:36:48:36:52 | input | test.c:46:28:46:32 | input | +| test.c:36:48:36:52 | input | test.c:47:10:47:14 | input | +| test.c:36:48:36:52 | input | test.c:48:19:48:23 | input | +| test.c:36:48:36:52 | input | test.c:51:12:51:16 | input | +| test.c:36:48:36:52 | input | test.c:51:30:51:34 | input | +| test.c:36:48:36:52 | input | test.c:52:12:52:16 | input | +| test.c:40:19:40:23 | input | test.c:31:35:31:39 | input | +| test.c:48:19:48:23 | input | test.c:31:35:31:39 | input | +| test.c:48:19:48:23 | input | test.c:55:21:55:25 | input | +| test.c:55:21:55:25 | input | test.c:31:35:31:39 | input | +| test.c:70:28:70:32 | input | test.c:70:28:70:32 | input indirection | +| test.c:70:28:70:32 | input | test.c:79:16:79:20 | input | +| test.c:70:28:70:32 | input | test.c:80:16:80:20 | input | +| test.c:70:28:70:32 | input indirection | test.c:74:19:74:23 | input | +| test.c:70:28:70:32 | input indirection | test.c:75:21:75:25 | input | +| test.c:75:21:75:25 | input | test.c:31:35:31:39 | input | +| test.c:84:35:84:39 | input | test.c:84:35:84:39 | input indirection | +| test.c:84:35:84:39 | input | test.c:93:10:93:14 | input | +| test.c:84:35:84:39 | input | test.c:93:29:93:33 | input | +| test.c:84:35:84:39 | input indirection | test.c:89:26:89:30 | input | +| test.c:104:29:104:33 | input | test.c:105:22:105:26 | input | +| test.c:105:22:105:26 | input | test.c:36:48:36:52 | input | +| test.c:108:30:108:34 | input | test.c:109:20:109:24 | input | +| test.c:109:20:109:24 | input | test.c:70:28:70:32 | input | +| test.c:112:37:112:41 | input | test.c:113:27:113:31 | input | +| test.c:113:27:113:31 | input | test.c:84:35:84:39 | input | +nodes +| test.c:31:35:31:39 | input | semmle.label | input | +| test.c:31:35:31:39 | input | semmle.label | input | +| test.c:31:35:31:39 | input | semmle.label | input | +| test.c:32:10:32:14 | input | semmle.label | input | +| test.c:32:10:32:14 | input | semmle.label | input | +| test.c:32:10:32:14 | input | semmle.label | input | +| test.c:32:28:32:32 | input | semmle.label | input | +| test.c:32:28:32:32 | input | semmle.label | input | +| test.c:33:10:33:14 | input | semmle.label | input | +| test.c:33:10:33:14 | input | semmle.label | input | +| test.c:36:48:36:52 | input | semmle.label | input | +| test.c:38:10:38:14 | input | semmle.label | input | +| test.c:38:28:38:32 | input | semmle.label | input | +| test.c:39:10:39:14 | input | semmle.label | input | +| test.c:40:19:40:23 | input | semmle.label | input | +| test.c:46:10:46:14 | input | semmle.label | input | +| test.c:46:28:46:32 | input | semmle.label | input | +| test.c:47:10:47:14 | input | semmle.label | input | +| test.c:48:19:48:23 | input | semmle.label | input | +| test.c:51:12:51:16 | input | semmle.label | input | +| test.c:51:30:51:34 | input | semmle.label | input | +| test.c:52:12:52:16 | input | semmle.label | input | +| test.c:55:21:55:25 | input | semmle.label | input | +| test.c:70:28:70:32 | input | semmle.label | input | +| test.c:70:28:70:32 | input indirection | semmle.label | input indirection | +| test.c:74:19:74:23 | input | semmle.label | input | +| test.c:75:21:75:25 | input | semmle.label | input | +| test.c:79:16:79:20 | input | semmle.label | input | +| test.c:80:16:80:20 | input | semmle.label | input | +| test.c:84:35:84:39 | input | semmle.label | input | +| test.c:84:35:84:39 | input indirection | semmle.label | input indirection | +| test.c:89:26:89:30 | input | semmle.label | input | +| test.c:93:10:93:14 | input | semmle.label | input | +| test.c:93:29:93:33 | input | semmle.label | input | +| test.c:104:29:104:33 | input | semmle.label | input | +| test.c:105:22:105:26 | input | semmle.label | input | +| test.c:108:30:108:34 | input | semmle.label | input | +| test.c:109:20:109:24 | input | semmle.label | input | +| test.c:112:37:112:41 | input | semmle.label | input | +| test.c:113:27:113:31 | input | semmle.label | input | +subpaths +#select +| test.c:32:10:32:14 | input | test.c:104:29:104:33 | input | test.c:32:10:32:14 | input | Access to dynamic input array with missing or mismatched type validation. | +| test.c:32:10:32:14 | input | test.c:104:29:104:33 | input | test.c:32:10:32:14 | input | Access to dynamic input array with missing or mismatched type validation. | +| test.c:32:10:32:14 | input | test.c:108:30:108:34 | input | test.c:32:10:32:14 | input | Access to dynamic input array with missing or mismatched type validation. | +| test.c:32:28:32:32 | input | test.c:104:29:104:33 | input | test.c:32:28:32:32 | input | Access to dynamic input array with missing or mismatched type validation. | +| test.c:32:28:32:32 | input | test.c:108:30:108:34 | input | test.c:32:28:32:32 | input | Access to dynamic input array with missing or mismatched type validation. | +| test.c:33:10:33:14 | input | test.c:104:29:104:33 | input | test.c:33:10:33:14 | input | Access to dynamic input array with missing or mismatched type validation. | +| test.c:33:10:33:14 | input | test.c:108:30:108:34 | input | test.c:33:10:33:14 | input | Access to dynamic input array with missing or mismatched type validation. | +| test.c:38:10:38:14 | input | test.c:104:29:104:33 | input | test.c:38:10:38:14 | input | Access to dynamic input array with missing or mismatched type validation. | +| test.c:38:28:38:32 | input | test.c:104:29:104:33 | input | test.c:38:28:38:32 | input | Access to dynamic input array with missing or mismatched type validation. | +| test.c:39:10:39:14 | input | test.c:104:29:104:33 | input | test.c:39:10:39:14 | input | Access to dynamic input array with missing or mismatched type validation. | +| test.c:46:10:46:14 | input | test.c:104:29:104:33 | input | test.c:46:10:46:14 | input | Access to dynamic input array with missing or mismatched type validation. | +| test.c:46:28:46:32 | input | test.c:104:29:104:33 | input | test.c:46:28:46:32 | input | Access to dynamic input array with missing or mismatched type validation. | +| test.c:47:10:47:14 | input | test.c:104:29:104:33 | input | test.c:47:10:47:14 | input | Access to dynamic input array with missing or mismatched type validation. | +| test.c:51:12:51:16 | input | test.c:104:29:104:33 | input | test.c:51:12:51:16 | input | Access to dynamic input array with missing or mismatched type validation. | +| test.c:51:30:51:34 | input | test.c:104:29:104:33 | input | test.c:51:30:51:34 | input | Access to dynamic input array with missing or mismatched type validation. | +| test.c:52:12:52:16 | input | test.c:104:29:104:33 | input | test.c:52:12:52:16 | input | Access to dynamic input array with missing or mismatched type validation. | +| test.c:74:19:74:23 | input | test.c:108:30:108:34 | input | test.c:74:19:74:23 | input | Access to dynamic input array with missing or mismatched type validation. | +| test.c:79:16:79:20 | input | test.c:108:30:108:34 | input | test.c:79:16:79:20 | input | Access to dynamic input array with missing or mismatched type validation. | +| test.c:80:16:80:20 | input | test.c:108:30:108:34 | input | test.c:80:16:80:20 | input | Access to dynamic input array with missing or mismatched type validation. | +| test.c:89:26:89:30 | input | test.c:112:37:112:41 | input | test.c:89:26:89:30 | input | Access to dynamic input array with missing or mismatched type validation. | +| test.c:93:10:93:14 | input | test.c:112:37:112:41 | input | test.c:93:10:93:14 | input | Access to dynamic input array with missing or mismatched type validation. | +| test.c:93:29:93:33 | input | test.c:112:37:112:41 | input | test.c:93:29:93:33 | input | Access to dynamic input array with missing or mismatched type validation. | diff --git a/exercises-tests/Exercise15/Exercise15.qlref b/exercises-tests/Exercise15/Exercise15.qlref new file mode 100644 index 0000000..645cd13 --- /dev/null +++ b/exercises-tests/Exercise15/Exercise15.qlref @@ -0,0 +1 @@ +Exercise15.ql \ No newline at end of file diff --git a/exercises-tests/Exercise16/Exercise16.expected b/exercises-tests/Exercise16/Exercise16.expected new file mode 100644 index 0000000..526c2ce --- /dev/null +++ b/exercises-tests/Exercise16/Exercise16.expected @@ -0,0 +1,104 @@ +edges +| test.c:31:35:31:39 | input | test.c:32:10:32:14 | input | +| test.c:31:35:31:39 | input | test.c:32:10:32:14 | input | +| test.c:31:35:31:39 | input | test.c:32:10:32:14 | input | +| test.c:31:35:31:39 | input | test.c:32:28:32:32 | input | +| test.c:31:35:31:39 | input | test.c:32:28:32:32 | input | +| test.c:31:35:31:39 | input | test.c:33:10:33:14 | input | +| test.c:31:35:31:39 | input | test.c:33:10:33:14 | input | +| test.c:36:48:36:52 | input | test.c:38:10:38:14 | input | +| test.c:36:48:36:52 | input | test.c:38:28:38:32 | input | +| test.c:36:48:36:52 | input | test.c:39:10:39:14 | input | +| test.c:36:48:36:52 | input | test.c:40:19:40:23 | input | +| test.c:36:48:36:52 | input | test.c:46:10:46:14 | input | +| test.c:36:48:36:52 | input | test.c:46:28:46:32 | input | +| test.c:36:48:36:52 | input | test.c:47:10:47:14 | input | +| test.c:36:48:36:52 | input | test.c:48:19:48:23 | input | +| test.c:36:48:36:52 | input | test.c:51:12:51:16 | input | +| test.c:36:48:36:52 | input | test.c:51:30:51:34 | input | +| test.c:36:48:36:52 | input | test.c:52:12:52:16 | input | +| test.c:40:19:40:23 | input | test.c:31:35:31:39 | input | +| test.c:48:19:48:23 | input | test.c:31:35:31:39 | input | +| test.c:48:19:48:23 | input | test.c:55:21:55:25 | input | +| test.c:55:21:55:25 | input | test.c:31:35:31:39 | input | +| test.c:70:28:70:32 | input | test.c:70:28:70:32 | input indirection | +| test.c:70:28:70:32 | input | test.c:79:16:79:20 | input | +| test.c:70:28:70:32 | input | test.c:80:16:80:20 | input | +| test.c:70:28:70:32 | input indirection | test.c:74:19:74:23 | input | +| test.c:70:28:70:32 | input indirection | test.c:75:21:75:25 | input | +| test.c:75:21:75:25 | input | test.c:31:35:31:39 | input | +| test.c:84:35:84:39 | input | test.c:84:35:84:39 | input indirection | +| test.c:84:35:84:39 | input | test.c:93:10:93:14 | input | +| test.c:84:35:84:39 | input | test.c:93:29:93:33 | input | +| test.c:84:35:84:39 | input indirection | test.c:89:26:89:30 | input | +| test.c:104:29:104:33 | input | test.c:105:22:105:26 | input | +| test.c:105:22:105:26 | input | test.c:36:48:36:52 | input | +| test.c:108:30:108:34 | input | test.c:109:20:109:24 | input | +| test.c:109:20:109:24 | input | test.c:70:28:70:32 | input | +| test.c:112:37:112:41 | input | test.c:113:27:113:31 | input | +| test.c:113:27:113:31 | input | test.c:84:35:84:39 | input | +nodes +| test.c:31:35:31:39 | input | semmle.label | input | +| test.c:31:35:31:39 | input | semmle.label | input | +| test.c:31:35:31:39 | input | semmle.label | input | +| test.c:32:10:32:14 | input | semmle.label | input | +| test.c:32:10:32:14 | input | semmle.label | input | +| test.c:32:10:32:14 | input | semmle.label | input | +| test.c:32:28:32:32 | input | semmle.label | input | +| test.c:32:28:32:32 | input | semmle.label | input | +| test.c:33:10:33:14 | input | semmle.label | input | +| test.c:33:10:33:14 | input | semmle.label | input | +| test.c:36:48:36:52 | input | semmle.label | input | +| test.c:38:10:38:14 | input | semmle.label | input | +| test.c:38:28:38:32 | input | semmle.label | input | +| test.c:39:10:39:14 | input | semmle.label | input | +| test.c:40:19:40:23 | input | semmle.label | input | +| test.c:46:10:46:14 | input | semmle.label | input | +| test.c:46:28:46:32 | input | semmle.label | input | +| test.c:47:10:47:14 | input | semmle.label | input | +| test.c:48:19:48:23 | input | semmle.label | input | +| test.c:51:12:51:16 | input | semmle.label | input | +| test.c:51:30:51:34 | input | semmle.label | input | +| test.c:52:12:52:16 | input | semmle.label | input | +| test.c:55:21:55:25 | input | semmle.label | input | +| test.c:70:28:70:32 | input | semmle.label | input | +| test.c:70:28:70:32 | input indirection | semmle.label | input indirection | +| test.c:74:19:74:23 | input | semmle.label | input | +| test.c:75:21:75:25 | input | semmle.label | input | +| test.c:79:16:79:20 | input | semmle.label | input | +| test.c:80:16:80:20 | input | semmle.label | input | +| test.c:84:35:84:39 | input | semmle.label | input | +| test.c:84:35:84:39 | input indirection | semmle.label | input indirection | +| test.c:89:26:89:30 | input | semmle.label | input | +| test.c:93:10:93:14 | input | semmle.label | input | +| test.c:93:29:93:33 | input | semmle.label | input | +| test.c:104:29:104:33 | input | semmle.label | input | +| test.c:105:22:105:26 | input | semmle.label | input | +| test.c:108:30:108:34 | input | semmle.label | input | +| test.c:109:20:109:24 | input | semmle.label | input | +| test.c:112:37:112:41 | input | semmle.label | input | +| test.c:113:27:113:31 | input | semmle.label | input | +subpaths +#select +| test.c:32:10:32:14 | input | test.c:104:29:104:33 | input | test.c:32:10:32:14 | input | Dynamic input access does not match prior type-validation $@. | test.c:53:14:53:27 | call to DYN_INPUT_TYPE | here | +| test.c:32:10:32:14 | input | test.c:104:29:104:33 | input | test.c:32:10:32:14 | input | No type validation performed before dynamic input access. | test.c:32:10:32:14 | input | here | +| test.c:32:10:32:14 | input | test.c:108:30:108:34 | input | test.c:32:10:32:14 | input | Dynamic input access does not match prior type-validation $@. | test.c:71:22:71:35 | call to DYN_INPUT_TYPE | here | +| test.c:32:28:32:32 | input | test.c:104:29:104:33 | input | test.c:32:28:32:32 | input | No type validation performed before dynamic input access. | test.c:32:28:32:32 | input | here | +| test.c:32:28:32:32 | input | test.c:108:30:108:34 | input | test.c:32:28:32:32 | input | Dynamic input access does not match prior type-validation $@. | test.c:71:22:71:35 | call to DYN_INPUT_TYPE | here | +| test.c:33:10:33:14 | input | test.c:104:29:104:33 | input | test.c:33:10:33:14 | input | No type validation performed before dynamic input access. | test.c:33:10:33:14 | input | here | +| test.c:33:10:33:14 | input | test.c:108:30:108:34 | input | test.c:33:10:33:14 | input | Dynamic input access does not match prior type-validation $@. | test.c:71:22:71:35 | call to DYN_INPUT_TYPE | here | +| test.c:38:10:38:14 | input | test.c:104:29:104:33 | input | test.c:38:10:38:14 | input | No type validation performed before dynamic input access. | test.c:38:10:38:14 | input | here | +| test.c:38:28:38:32 | input | test.c:104:29:104:33 | input | test.c:38:28:38:32 | input | No type validation performed before dynamic input access. | test.c:38:28:38:32 | input | here | +| test.c:39:10:39:14 | input | test.c:104:29:104:33 | input | test.c:39:10:39:14 | input | No type validation performed before dynamic input access. | test.c:39:10:39:14 | input | here | +| test.c:46:10:46:14 | input | test.c:104:29:104:33 | input | test.c:46:10:46:14 | input | No type validation performed before dynamic input access. | test.c:46:10:46:14 | input | here | +| test.c:46:28:46:32 | input | test.c:104:29:104:33 | input | test.c:46:28:46:32 | input | No type validation performed before dynamic input access. | test.c:46:28:46:32 | input | here | +| test.c:47:10:47:14 | input | test.c:104:29:104:33 | input | test.c:47:10:47:14 | input | No type validation performed before dynamic input access. | test.c:47:10:47:14 | input | here | +| test.c:51:12:51:16 | input | test.c:104:29:104:33 | input | test.c:51:12:51:16 | input | No type validation performed before dynamic input access. | test.c:51:12:51:16 | input | here | +| test.c:51:30:51:34 | input | test.c:104:29:104:33 | input | test.c:51:30:51:34 | input | No type validation performed before dynamic input access. | test.c:51:30:51:34 | input | here | +| test.c:52:12:52:16 | input | test.c:104:29:104:33 | input | test.c:52:12:52:16 | input | No type validation performed before dynamic input access. | test.c:52:12:52:16 | input | here | +| test.c:74:19:74:23 | input | test.c:108:30:108:34 | input | test.c:74:19:74:23 | input | Dynamic input access does not match prior type-validation $@. | test.c:71:22:71:35 | call to DYN_INPUT_TYPE | here | +| test.c:79:16:79:20 | input | test.c:108:30:108:34 | input | test.c:79:16:79:20 | input | No type validation performed before dynamic input access. | test.c:79:16:79:20 | input | here | +| test.c:80:16:80:20 | input | test.c:108:30:108:34 | input | test.c:80:16:80:20 | input | No type validation performed before dynamic input access. | test.c:80:16:80:20 | input | here | +| test.c:89:26:89:30 | input | test.c:112:37:112:41 | input | test.c:89:26:89:30 | input | Dynamic input access does not match prior type-validation $@. | test.c:85:22:85:35 | call to DYN_INPUT_TYPE | here | +| test.c:93:10:93:14 | input | test.c:112:37:112:41 | input | test.c:93:10:93:14 | input | No type validation performed before dynamic input access. | test.c:93:10:93:14 | input | here | +| test.c:93:29:93:33 | input | test.c:112:37:112:41 | input | test.c:93:29:93:33 | input | No type validation performed before dynamic input access. | test.c:93:29:93:33 | input | here | diff --git a/exercises-tests/Exercise16/Exercise16.qlref b/exercises-tests/Exercise16/Exercise16.qlref new file mode 100644 index 0000000..b0aff6b --- /dev/null +++ b/exercises-tests/Exercise16/Exercise16.qlref @@ -0,0 +1 @@ +Exercise16.ql \ No newline at end of file diff --git a/initialize-qltests.sh b/initialize-qltests.sh index bea2992..1f98aac 100755 --- a/initialize-qltests.sh +++ b/initialize-qltests.sh @@ -25,9 +25,9 @@ for dir in "${target_dirs[@]}"; do cp $SRCDIR/test_part2.c $dir/Exercise$i/test.c done # copy test-part3.c to the Exercise13-Exercise15 directories - # for i in {13..15}; do - # cp $SRCDIR/test_part3.c $dir/Exercise$i/test.c - # done + for i in {13..16}; do + cp $SRCDIR/test_part3.c $dir/Exercise$i/test.c + done done exit 0 diff --git a/solutions-tests/Exercise13/Exercise13.expected b/solutions-tests/Exercise13/Exercise13.expected new file mode 100644 index 0000000..0fd346f --- /dev/null +++ b/solutions-tests/Exercise13/Exercise13.expected @@ -0,0 +1,92 @@ +edges +| test.c:31:35:31:39 | input | test.c:32:10:32:14 | input | +| test.c:31:35:31:39 | input | test.c:32:28:32:32 | input | +| test.c:31:35:31:39 | input | test.c:33:10:33:14 | input | +| test.c:36:48:36:52 | input | test.c:38:10:38:14 | input | +| test.c:36:48:36:52 | input | test.c:38:28:38:32 | input | +| test.c:36:48:36:52 | input | test.c:39:10:39:14 | input | +| test.c:36:48:36:52 | input | test.c:40:19:40:23 | input | +| test.c:36:48:36:52 | input | test.c:46:10:46:14 | input | +| test.c:36:48:36:52 | input | test.c:46:28:46:32 | input | +| test.c:36:48:36:52 | input | test.c:47:10:47:14 | input | +| test.c:36:48:36:52 | input | test.c:48:19:48:23 | input | +| test.c:36:48:36:52 | input | test.c:51:12:51:16 | input | +| test.c:36:48:36:52 | input | test.c:51:30:51:34 | input | +| test.c:36:48:36:52 | input | test.c:52:12:52:16 | input | +| test.c:36:48:36:52 | input | test.c:55:21:55:25 | input | +| test.c:36:48:36:52 | input | test.c:65:19:65:23 | input | +| test.c:40:19:40:23 | input | test.c:31:35:31:39 | input | +| test.c:48:19:48:23 | input | test.c:31:35:31:39 | input | +| test.c:55:21:55:25 | input | test.c:31:35:31:39 | input | +| test.c:65:19:65:23 | input | test.c:31:35:31:39 | input | +| test.c:70:28:70:32 | input | test.c:74:19:74:23 | input | +| test.c:70:28:70:32 | input | test.c:75:21:75:25 | input | +| test.c:70:28:70:32 | input | test.c:79:16:79:20 | input | +| test.c:70:28:70:32 | input | test.c:80:16:80:20 | input | +| test.c:75:21:75:25 | input | test.c:31:35:31:39 | input | +| test.c:84:35:84:39 | input | test.c:89:26:89:30 | input | +| test.c:84:35:84:39 | input | test.c:93:10:93:14 | input | +| test.c:84:35:84:39 | input | test.c:93:29:93:33 | input | +| test.c:104:29:104:33 | input | test.c:105:22:105:26 | input | +| test.c:105:22:105:26 | input | test.c:36:48:36:52 | input | +| test.c:108:30:108:34 | input | test.c:109:20:109:24 | input | +| test.c:109:20:109:24 | input | test.c:70:28:70:32 | input | +| test.c:112:37:112:41 | input | test.c:113:27:113:31 | input | +| test.c:113:27:113:31 | input | test.c:84:35:84:39 | input | +nodes +| test.c:31:35:31:39 | input | semmle.label | input | +| test.c:32:10:32:14 | input | semmle.label | input | +| test.c:32:28:32:32 | input | semmle.label | input | +| test.c:33:10:33:14 | input | semmle.label | input | +| test.c:36:48:36:52 | input | semmle.label | input | +| test.c:38:10:38:14 | input | semmle.label | input | +| test.c:38:28:38:32 | input | semmle.label | input | +| test.c:39:10:39:14 | input | semmle.label | input | +| test.c:40:19:40:23 | input | semmle.label | input | +| test.c:46:10:46:14 | input | semmle.label | input | +| test.c:46:28:46:32 | input | semmle.label | input | +| test.c:47:10:47:14 | input | semmle.label | input | +| test.c:48:19:48:23 | input | semmle.label | input | +| test.c:51:12:51:16 | input | semmle.label | input | +| test.c:51:30:51:34 | input | semmle.label | input | +| test.c:52:12:52:16 | input | semmle.label | input | +| test.c:55:21:55:25 | input | semmle.label | input | +| test.c:65:19:65:23 | input | semmle.label | input | +| test.c:70:28:70:32 | input | semmle.label | input | +| test.c:74:19:74:23 | input | semmle.label | input | +| test.c:75:21:75:25 | input | semmle.label | input | +| test.c:79:16:79:20 | input | semmle.label | input | +| test.c:80:16:80:20 | input | semmle.label | input | +| test.c:84:35:84:39 | input | semmle.label | input | +| test.c:89:26:89:30 | input | semmle.label | input | +| test.c:93:10:93:14 | input | semmle.label | input | +| test.c:93:29:93:33 | input | semmle.label | input | +| test.c:104:29:104:33 | input | semmle.label | input | +| test.c:105:22:105:26 | input | semmle.label | input | +| test.c:108:30:108:34 | input | semmle.label | input | +| test.c:109:20:109:24 | input | semmle.label | input | +| test.c:112:37:112:41 | input | semmle.label | input | +| test.c:113:27:113:31 | input | semmle.label | input | +subpaths +#select +| test.c:32:10:32:14 | input | test.c:104:29:104:33 | input | test.c:32:10:32:14 | input | Access to dynamic input array with missing or mismatched type validation. | +| test.c:32:10:32:14 | input | test.c:108:30:108:34 | input | test.c:32:10:32:14 | input | Access to dynamic input array with missing or mismatched type validation. | +| test.c:32:28:32:32 | input | test.c:104:29:104:33 | input | test.c:32:28:32:32 | input | Access to dynamic input array with missing or mismatched type validation. | +| test.c:32:28:32:32 | input | test.c:108:30:108:34 | input | test.c:32:28:32:32 | input | Access to dynamic input array with missing or mismatched type validation. | +| test.c:33:10:33:14 | input | test.c:104:29:104:33 | input | test.c:33:10:33:14 | input | Access to dynamic input array with missing or mismatched type validation. | +| test.c:33:10:33:14 | input | test.c:108:30:108:34 | input | test.c:33:10:33:14 | input | Access to dynamic input array with missing or mismatched type validation. | +| test.c:38:10:38:14 | input | test.c:104:29:104:33 | input | test.c:38:10:38:14 | input | Access to dynamic input array with missing or mismatched type validation. | +| test.c:38:28:38:32 | input | test.c:104:29:104:33 | input | test.c:38:28:38:32 | input | Access to dynamic input array with missing or mismatched type validation. | +| test.c:39:10:39:14 | input | test.c:104:29:104:33 | input | test.c:39:10:39:14 | input | Access to dynamic input array with missing or mismatched type validation. | +| test.c:46:10:46:14 | input | test.c:104:29:104:33 | input | test.c:46:10:46:14 | input | Access to dynamic input array with missing or mismatched type validation. | +| test.c:46:28:46:32 | input | test.c:104:29:104:33 | input | test.c:46:28:46:32 | input | Access to dynamic input array with missing or mismatched type validation. | +| test.c:47:10:47:14 | input | test.c:104:29:104:33 | input | test.c:47:10:47:14 | input | Access to dynamic input array with missing or mismatched type validation. | +| test.c:51:12:51:16 | input | test.c:104:29:104:33 | input | test.c:51:12:51:16 | input | Access to dynamic input array with missing or mismatched type validation. | +| test.c:51:30:51:34 | input | test.c:104:29:104:33 | input | test.c:51:30:51:34 | input | Access to dynamic input array with missing or mismatched type validation. | +| test.c:52:12:52:16 | input | test.c:104:29:104:33 | input | test.c:52:12:52:16 | input | Access to dynamic input array with missing or mismatched type validation. | +| test.c:74:19:74:23 | input | test.c:108:30:108:34 | input | test.c:74:19:74:23 | input | Access to dynamic input array with missing or mismatched type validation. | +| test.c:79:16:79:20 | input | test.c:108:30:108:34 | input | test.c:79:16:79:20 | input | Access to dynamic input array with missing or mismatched type validation. | +| test.c:80:16:80:20 | input | test.c:108:30:108:34 | input | test.c:80:16:80:20 | input | Access to dynamic input array with missing or mismatched type validation. | +| test.c:89:26:89:30 | input | test.c:112:37:112:41 | input | test.c:89:26:89:30 | input | Access to dynamic input array with missing or mismatched type validation. | +| test.c:93:10:93:14 | input | test.c:112:37:112:41 | input | test.c:93:10:93:14 | input | Access to dynamic input array with missing or mismatched type validation. | +| test.c:93:29:93:33 | input | test.c:112:37:112:41 | input | test.c:93:29:93:33 | input | Access to dynamic input array with missing or mismatched type validation. | diff --git a/solutions-tests/Exercise13/Exercise13.qlref b/solutions-tests/Exercise13/Exercise13.qlref new file mode 100644 index 0000000..2b03ec4 --- /dev/null +++ b/solutions-tests/Exercise13/Exercise13.qlref @@ -0,0 +1 @@ +Exercise13.ql \ No newline at end of file diff --git a/solutions-tests/Exercise14/Exercise14.expected b/solutions-tests/Exercise14/Exercise14.expected new file mode 100644 index 0000000..de48c61 --- /dev/null +++ b/solutions-tests/Exercise14/Exercise14.expected @@ -0,0 +1,69 @@ +| test.c:48:19:48:23 | input | test.c:55:21:55:25 | input | test.c:53:14:53:27 | call to DYN_INPUT_TYPE | +| test.c:58:7:58:17 | Phi | test.c:63:10:63:14 | input | test.c:58:22:58:35 | call to DYN_INPUT_TYPE | +| test.c:58:7:58:17 | Phi | test.c:63:23:63:25 | buf | test.c:58:22:58:35 | call to DYN_INPUT_TYPE | +| test.c:58:7:58:17 | Phi | test.c:63:41:63:43 | buf | test.c:58:22:58:35 | call to DYN_INPUT_TYPE | +| test.c:58:7:58:17 | Phi | test.c:64:23:64:26 | size | test.c:58:22:58:35 | call to DYN_INPUT_TYPE | +| test.c:63:23:63:25 | buf indirection | test.c:63:10:63:14 | input | test.c:58:22:58:35 | call to DYN_INPUT_TYPE | +| test.c:63:23:63:25 | buf indirection | test.c:63:23:63:25 | buf | test.c:58:22:58:35 | call to DYN_INPUT_TYPE | +| test.c:63:23:63:25 | buf indirection | test.c:63:41:63:43 | buf | test.c:58:22:58:35 | call to DYN_INPUT_TYPE | +| test.c:63:23:63:25 | buf indirection | test.c:64:23:64:26 | size | test.c:58:22:58:35 | call to DYN_INPUT_TYPE | +| test.c:63:41:63:43 | buf indirection | test.c:63:10:63:14 | input | test.c:58:22:58:35 | call to DYN_INPUT_TYPE | +| test.c:63:41:63:43 | buf indirection | test.c:63:23:63:25 | buf | test.c:58:22:58:35 | call to DYN_INPUT_TYPE | +| test.c:63:41:63:43 | buf indirection | test.c:63:41:63:43 | buf | test.c:58:22:58:35 | call to DYN_INPUT_TYPE | +| test.c:63:41:63:43 | buf indirection | test.c:64:23:64:26 | size | test.c:58:22:58:35 | call to DYN_INPUT_TYPE | +| test.c:64:23:64:26 | size indirection | test.c:63:10:63:14 | input | test.c:58:22:58:35 | call to DYN_INPUT_TYPE | +| test.c:64:23:64:26 | size indirection | test.c:63:23:63:25 | buf | test.c:58:22:58:35 | call to DYN_INPUT_TYPE | +| test.c:64:23:64:26 | size indirection | test.c:63:41:63:43 | buf | test.c:58:22:58:35 | call to DYN_INPUT_TYPE | +| test.c:64:23:64:26 | size indirection | test.c:64:23:64:26 | size | test.c:58:22:58:35 | call to DYN_INPUT_TYPE | +| test.c:70:28:70:32 | input indirection | test.c:72:18:72:22 | input | test.c:71:22:71:35 | call to DYN_INPUT_TYPE | +| test.c:70:28:70:32 | input indirection | test.c:72:18:72:31 | ... ++ | test.c:71:22:71:35 | call to DYN_INPUT_TYPE | +| test.c:70:28:70:32 | input indirection | test.c:72:27:72:29 | val | test.c:71:22:71:35 | call to DYN_INPUT_TYPE | +| test.c:70:28:70:32 | input indirection | test.c:73:18:73:31 | ... ++ | test.c:71:22:71:35 | call to DYN_INPUT_TYPE | +| test.c:70:28:70:32 | input indirection | test.c:73:27:73:29 | val | test.c:71:22:71:35 | call to DYN_INPUT_TYPE | +| test.c:70:28:70:32 | input indirection | test.c:74:32:74:35 | size | test.c:71:22:71:35 | call to DYN_INPUT_TYPE | +| test.c:72:27:72:29 | val | test.c:72:18:72:22 | input | test.c:71:22:71:35 | call to DYN_INPUT_TYPE | +| test.c:72:27:72:29 | val | test.c:72:18:72:31 | ... ++ | test.c:71:22:71:35 | call to DYN_INPUT_TYPE | +| test.c:72:27:72:29 | val | test.c:72:27:72:29 | val | test.c:71:22:71:35 | call to DYN_INPUT_TYPE | +| test.c:72:27:72:29 | val | test.c:73:18:73:31 | ... ++ | test.c:71:22:71:35 | call to DYN_INPUT_TYPE | +| test.c:72:27:72:29 | val | test.c:73:27:73:29 | val | test.c:71:22:71:35 | call to DYN_INPUT_TYPE | +| test.c:72:27:72:29 | val | test.c:74:32:74:35 | size | test.c:71:22:71:35 | call to DYN_INPUT_TYPE | +| test.c:72:27:72:29 | val indirection | test.c:72:18:72:22 | input | test.c:71:22:71:35 | call to DYN_INPUT_TYPE | +| test.c:72:27:72:29 | val indirection | test.c:72:18:72:31 | ... ++ | test.c:71:22:71:35 | call to DYN_INPUT_TYPE | +| test.c:72:27:72:29 | val indirection | test.c:72:27:72:29 | val | test.c:71:22:71:35 | call to DYN_INPUT_TYPE | +| test.c:72:27:72:29 | val indirection | test.c:73:18:73:31 | ... ++ | test.c:71:22:71:35 | call to DYN_INPUT_TYPE | +| test.c:72:27:72:29 | val indirection | test.c:73:27:73:29 | val | test.c:71:22:71:35 | call to DYN_INPUT_TYPE | +| test.c:72:27:72:29 | val indirection | test.c:74:32:74:35 | size | test.c:71:22:71:35 | call to DYN_INPUT_TYPE | +| test.c:73:27:73:29 | val | test.c:72:18:72:22 | input | test.c:71:22:71:35 | call to DYN_INPUT_TYPE | +| test.c:73:27:73:29 | val | test.c:72:18:72:31 | ... ++ | test.c:71:22:71:35 | call to DYN_INPUT_TYPE | +| test.c:73:27:73:29 | val | test.c:72:27:72:29 | val | test.c:71:22:71:35 | call to DYN_INPUT_TYPE | +| test.c:73:27:73:29 | val | test.c:73:18:73:31 | ... ++ | test.c:71:22:71:35 | call to DYN_INPUT_TYPE | +| test.c:73:27:73:29 | val | test.c:73:27:73:29 | val | test.c:71:22:71:35 | call to DYN_INPUT_TYPE | +| test.c:73:27:73:29 | val | test.c:74:32:74:35 | size | test.c:71:22:71:35 | call to DYN_INPUT_TYPE | +| test.c:73:27:73:29 | val indirection | test.c:72:18:72:22 | input | test.c:71:22:71:35 | call to DYN_INPUT_TYPE | +| test.c:73:27:73:29 | val indirection | test.c:72:18:72:31 | ... ++ | test.c:71:22:71:35 | call to DYN_INPUT_TYPE | +| test.c:73:27:73:29 | val indirection | test.c:72:27:72:29 | val | test.c:71:22:71:35 | call to DYN_INPUT_TYPE | +| test.c:73:27:73:29 | val indirection | test.c:73:18:73:31 | ... ++ | test.c:71:22:71:35 | call to DYN_INPUT_TYPE | +| test.c:73:27:73:29 | val indirection | test.c:73:27:73:29 | val | test.c:71:22:71:35 | call to DYN_INPUT_TYPE | +| test.c:73:27:73:29 | val indirection | test.c:74:32:74:35 | size | test.c:71:22:71:35 | call to DYN_INPUT_TYPE | +| test.c:74:32:74:35 | size indirection | test.c:72:18:72:22 | input | test.c:71:22:71:35 | call to DYN_INPUT_TYPE | +| test.c:74:32:74:35 | size indirection | test.c:72:18:72:31 | ... ++ | test.c:71:22:71:35 | call to DYN_INPUT_TYPE | +| test.c:74:32:74:35 | size indirection | test.c:72:27:72:29 | val | test.c:71:22:71:35 | call to DYN_INPUT_TYPE | +| test.c:74:32:74:35 | size indirection | test.c:73:18:73:31 | ... ++ | test.c:71:22:71:35 | call to DYN_INPUT_TYPE | +| test.c:74:32:74:35 | size indirection | test.c:73:27:73:29 | val | test.c:71:22:71:35 | call to DYN_INPUT_TYPE | +| test.c:74:32:74:35 | size indirection | test.c:74:32:74:35 | size | test.c:71:22:71:35 | call to DYN_INPUT_TYPE | +| test.c:84:35:84:39 | input indirection | test.c:86:12:86:16 | input | test.c:85:22:85:35 | call to DYN_INPUT_TYPE | +| test.c:84:35:84:39 | input indirection | test.c:86:25:86:27 | buf | test.c:85:22:85:35 | call to DYN_INPUT_TYPE | +| test.c:84:35:84:39 | input indirection | test.c:88:12:89:42 | * ... | test.c:85:22:85:35 | call to DYN_INPUT_TYPE | +| test.c:84:35:84:39 | input indirection | test.c:89:39:89:41 | buf | test.c:85:22:85:35 | call to DYN_INPUT_TYPE | +| test.c:86:25:86:27 | buf indirection | test.c:86:12:86:16 | input | test.c:85:22:85:35 | call to DYN_INPUT_TYPE | +| test.c:86:25:86:27 | buf indirection | test.c:86:25:86:27 | buf | test.c:85:22:85:35 | call to DYN_INPUT_TYPE | +| test.c:86:25:86:27 | buf indirection | test.c:88:12:89:42 | * ... | test.c:85:22:85:35 | call to DYN_INPUT_TYPE | +| test.c:86:25:86:27 | buf indirection | test.c:89:39:89:41 | buf | test.c:85:22:85:35 | call to DYN_INPUT_TYPE | +| test.c:88:13:89:42 | buf indirection | test.c:86:12:86:16 | input | test.c:85:22:85:35 | call to DYN_INPUT_TYPE | +| test.c:88:13:89:42 | buf indirection | test.c:86:25:86:27 | buf | test.c:85:22:85:35 | call to DYN_INPUT_TYPE | +| test.c:88:13:89:42 | buf indirection | test.c:88:12:89:42 | * ... | test.c:85:22:85:35 | call to DYN_INPUT_TYPE | +| test.c:88:13:89:42 | buf indirection | test.c:89:39:89:41 | buf | test.c:85:22:85:35 | call to DYN_INPUT_TYPE | +| test.c:89:39:89:41 | buf indirection | test.c:86:12:86:16 | input | test.c:85:22:85:35 | call to DYN_INPUT_TYPE | +| test.c:89:39:89:41 | buf indirection | test.c:86:25:86:27 | buf | test.c:85:22:85:35 | call to DYN_INPUT_TYPE | +| test.c:89:39:89:41 | buf indirection | test.c:88:12:89:42 | * ... | test.c:85:22:85:35 | call to DYN_INPUT_TYPE | +| test.c:89:39:89:41 | buf indirection | test.c:89:39:89:41 | buf | test.c:85:22:85:35 | call to DYN_INPUT_TYPE | diff --git a/solutions-tests/Exercise14/Exercise14.qlref b/solutions-tests/Exercise14/Exercise14.qlref new file mode 100644 index 0000000..3f1c393 --- /dev/null +++ b/solutions-tests/Exercise14/Exercise14.qlref @@ -0,0 +1 @@ +Exercise14.ql \ No newline at end of file diff --git a/solutions-tests/Exercise15/Exercise15.expected b/solutions-tests/Exercise15/Exercise15.expected new file mode 100644 index 0000000..79fab72 --- /dev/null +++ b/solutions-tests/Exercise15/Exercise15.expected @@ -0,0 +1,104 @@ +edges +| test.c:31:35:31:39 | input | test.c:32:10:32:14 | input | +| test.c:31:35:31:39 | input | test.c:32:10:32:14 | input | +| test.c:31:35:31:39 | input | test.c:32:10:32:14 | input | +| test.c:31:35:31:39 | input | test.c:32:28:32:32 | input | +| test.c:31:35:31:39 | input | test.c:32:28:32:32 | input | +| test.c:31:35:31:39 | input | test.c:33:10:33:14 | input | +| test.c:31:35:31:39 | input | test.c:33:10:33:14 | input | +| test.c:36:48:36:52 | input | test.c:38:10:38:14 | input | +| test.c:36:48:36:52 | input | test.c:38:28:38:32 | input | +| test.c:36:48:36:52 | input | test.c:39:10:39:14 | input | +| test.c:36:48:36:52 | input | test.c:40:19:40:23 | input | +| test.c:36:48:36:52 | input | test.c:46:10:46:14 | input | +| test.c:36:48:36:52 | input | test.c:46:28:46:32 | input | +| test.c:36:48:36:52 | input | test.c:47:10:47:14 | input | +| test.c:36:48:36:52 | input | test.c:48:19:48:23 | input | +| test.c:36:48:36:52 | input | test.c:51:12:51:16 | input | +| test.c:36:48:36:52 | input | test.c:51:30:51:34 | input | +| test.c:36:48:36:52 | input | test.c:52:12:52:16 | input | +| test.c:40:19:40:23 | input | test.c:31:35:31:39 | input | +| test.c:48:19:48:23 | input | test.c:31:35:31:39 | input | +| test.c:48:19:48:23 | input | test.c:55:21:55:25 | input | +| test.c:55:21:55:25 | input | test.c:31:35:31:39 | input | +| test.c:70:28:70:32 | input | test.c:70:28:70:32 | input indirection | +| test.c:70:28:70:32 | input | test.c:79:16:79:20 | input | +| test.c:70:28:70:32 | input | test.c:80:16:80:20 | input | +| test.c:70:28:70:32 | input indirection | test.c:74:19:74:23 | input | +| test.c:70:28:70:32 | input indirection | test.c:75:21:75:25 | input | +| test.c:75:21:75:25 | input | test.c:31:35:31:39 | input | +| test.c:84:35:84:39 | input | test.c:84:35:84:39 | input indirection | +| test.c:84:35:84:39 | input | test.c:93:10:93:14 | input | +| test.c:84:35:84:39 | input | test.c:93:29:93:33 | input | +| test.c:84:35:84:39 | input indirection | test.c:89:26:89:30 | input | +| test.c:104:29:104:33 | input | test.c:105:22:105:26 | input | +| test.c:105:22:105:26 | input | test.c:36:48:36:52 | input | +| test.c:108:30:108:34 | input | test.c:109:20:109:24 | input | +| test.c:109:20:109:24 | input | test.c:70:28:70:32 | input | +| test.c:112:37:112:41 | input | test.c:113:27:113:31 | input | +| test.c:113:27:113:31 | input | test.c:84:35:84:39 | input | +nodes +| test.c:31:35:31:39 | input | semmle.label | input | +| test.c:31:35:31:39 | input | semmle.label | input | +| test.c:31:35:31:39 | input | semmle.label | input | +| test.c:32:10:32:14 | input | semmle.label | input | +| test.c:32:10:32:14 | input | semmle.label | input | +| test.c:32:10:32:14 | input | semmle.label | input | +| test.c:32:28:32:32 | input | semmle.label | input | +| test.c:32:28:32:32 | input | semmle.label | input | +| test.c:33:10:33:14 | input | semmle.label | input | +| test.c:33:10:33:14 | input | semmle.label | input | +| test.c:36:48:36:52 | input | semmle.label | input | +| test.c:38:10:38:14 | input | semmle.label | input | +| test.c:38:28:38:32 | input | semmle.label | input | +| test.c:39:10:39:14 | input | semmle.label | input | +| test.c:40:19:40:23 | input | semmle.label | input | +| test.c:46:10:46:14 | input | semmle.label | input | +| test.c:46:28:46:32 | input | semmle.label | input | +| test.c:47:10:47:14 | input | semmle.label | input | +| test.c:48:19:48:23 | input | semmle.label | input | +| test.c:51:12:51:16 | input | semmle.label | input | +| test.c:51:30:51:34 | input | semmle.label | input | +| test.c:52:12:52:16 | input | semmle.label | input | +| test.c:55:21:55:25 | input | semmle.label | input | +| test.c:70:28:70:32 | input | semmle.label | input | +| test.c:70:28:70:32 | input indirection | semmle.label | input indirection | +| test.c:74:19:74:23 | input | semmle.label | input | +| test.c:75:21:75:25 | input | semmle.label | input | +| test.c:79:16:79:20 | input | semmle.label | input | +| test.c:80:16:80:20 | input | semmle.label | input | +| test.c:84:35:84:39 | input | semmle.label | input | +| test.c:84:35:84:39 | input indirection | semmle.label | input indirection | +| test.c:89:26:89:30 | input | semmle.label | input | +| test.c:93:10:93:14 | input | semmle.label | input | +| test.c:93:29:93:33 | input | semmle.label | input | +| test.c:104:29:104:33 | input | semmle.label | input | +| test.c:105:22:105:26 | input | semmle.label | input | +| test.c:108:30:108:34 | input | semmle.label | input | +| test.c:109:20:109:24 | input | semmle.label | input | +| test.c:112:37:112:41 | input | semmle.label | input | +| test.c:113:27:113:31 | input | semmle.label | input | +subpaths +#select +| test.c:32:10:32:14 | input | test.c:104:29:104:33 | input | test.c:32:10:32:14 | input | Access to dynamic input array with missing or mismatched type validation. | +| test.c:32:10:32:14 | input | test.c:104:29:104:33 | input | test.c:32:10:32:14 | input | Access to dynamic input array with missing or mismatched type validation. | +| test.c:32:10:32:14 | input | test.c:108:30:108:34 | input | test.c:32:10:32:14 | input | Access to dynamic input array with missing or mismatched type validation. | +| test.c:32:28:32:32 | input | test.c:104:29:104:33 | input | test.c:32:28:32:32 | input | Access to dynamic input array with missing or mismatched type validation. | +| test.c:32:28:32:32 | input | test.c:108:30:108:34 | input | test.c:32:28:32:32 | input | Access to dynamic input array with missing or mismatched type validation. | +| test.c:33:10:33:14 | input | test.c:104:29:104:33 | input | test.c:33:10:33:14 | input | Access to dynamic input array with missing or mismatched type validation. | +| test.c:33:10:33:14 | input | test.c:108:30:108:34 | input | test.c:33:10:33:14 | input | Access to dynamic input array with missing or mismatched type validation. | +| test.c:38:10:38:14 | input | test.c:104:29:104:33 | input | test.c:38:10:38:14 | input | Access to dynamic input array with missing or mismatched type validation. | +| test.c:38:28:38:32 | input | test.c:104:29:104:33 | input | test.c:38:28:38:32 | input | Access to dynamic input array with missing or mismatched type validation. | +| test.c:39:10:39:14 | input | test.c:104:29:104:33 | input | test.c:39:10:39:14 | input | Access to dynamic input array with missing or mismatched type validation. | +| test.c:46:10:46:14 | input | test.c:104:29:104:33 | input | test.c:46:10:46:14 | input | Access to dynamic input array with missing or mismatched type validation. | +| test.c:46:28:46:32 | input | test.c:104:29:104:33 | input | test.c:46:28:46:32 | input | Access to dynamic input array with missing or mismatched type validation. | +| test.c:47:10:47:14 | input | test.c:104:29:104:33 | input | test.c:47:10:47:14 | input | Access to dynamic input array with missing or mismatched type validation. | +| test.c:51:12:51:16 | input | test.c:104:29:104:33 | input | test.c:51:12:51:16 | input | Access to dynamic input array with missing or mismatched type validation. | +| test.c:51:30:51:34 | input | test.c:104:29:104:33 | input | test.c:51:30:51:34 | input | Access to dynamic input array with missing or mismatched type validation. | +| test.c:52:12:52:16 | input | test.c:104:29:104:33 | input | test.c:52:12:52:16 | input | Access to dynamic input array with missing or mismatched type validation. | +| test.c:74:19:74:23 | input | test.c:108:30:108:34 | input | test.c:74:19:74:23 | input | Access to dynamic input array with missing or mismatched type validation. | +| test.c:79:16:79:20 | input | test.c:108:30:108:34 | input | test.c:79:16:79:20 | input | Access to dynamic input array with missing or mismatched type validation. | +| test.c:80:16:80:20 | input | test.c:108:30:108:34 | input | test.c:80:16:80:20 | input | Access to dynamic input array with missing or mismatched type validation. | +| test.c:89:26:89:30 | input | test.c:112:37:112:41 | input | test.c:89:26:89:30 | input | Access to dynamic input array with missing or mismatched type validation. | +| test.c:93:10:93:14 | input | test.c:112:37:112:41 | input | test.c:93:10:93:14 | input | Access to dynamic input array with missing or mismatched type validation. | +| test.c:93:29:93:33 | input | test.c:112:37:112:41 | input | test.c:93:29:93:33 | input | Access to dynamic input array with missing or mismatched type validation. | diff --git a/solutions-tests/Exercise15/Exercise15.qlref b/solutions-tests/Exercise15/Exercise15.qlref new file mode 100644 index 0000000..645cd13 --- /dev/null +++ b/solutions-tests/Exercise15/Exercise15.qlref @@ -0,0 +1 @@ +Exercise15.ql \ No newline at end of file diff --git a/solutions-tests/Exercise16/Exercise16.expected b/solutions-tests/Exercise16/Exercise16.expected new file mode 100644 index 0000000..526c2ce --- /dev/null +++ b/solutions-tests/Exercise16/Exercise16.expected @@ -0,0 +1,104 @@ +edges +| test.c:31:35:31:39 | input | test.c:32:10:32:14 | input | +| test.c:31:35:31:39 | input | test.c:32:10:32:14 | input | +| test.c:31:35:31:39 | input | test.c:32:10:32:14 | input | +| test.c:31:35:31:39 | input | test.c:32:28:32:32 | input | +| test.c:31:35:31:39 | input | test.c:32:28:32:32 | input | +| test.c:31:35:31:39 | input | test.c:33:10:33:14 | input | +| test.c:31:35:31:39 | input | test.c:33:10:33:14 | input | +| test.c:36:48:36:52 | input | test.c:38:10:38:14 | input | +| test.c:36:48:36:52 | input | test.c:38:28:38:32 | input | +| test.c:36:48:36:52 | input | test.c:39:10:39:14 | input | +| test.c:36:48:36:52 | input | test.c:40:19:40:23 | input | +| test.c:36:48:36:52 | input | test.c:46:10:46:14 | input | +| test.c:36:48:36:52 | input | test.c:46:28:46:32 | input | +| test.c:36:48:36:52 | input | test.c:47:10:47:14 | input | +| test.c:36:48:36:52 | input | test.c:48:19:48:23 | input | +| test.c:36:48:36:52 | input | test.c:51:12:51:16 | input | +| test.c:36:48:36:52 | input | test.c:51:30:51:34 | input | +| test.c:36:48:36:52 | input | test.c:52:12:52:16 | input | +| test.c:40:19:40:23 | input | test.c:31:35:31:39 | input | +| test.c:48:19:48:23 | input | test.c:31:35:31:39 | input | +| test.c:48:19:48:23 | input | test.c:55:21:55:25 | input | +| test.c:55:21:55:25 | input | test.c:31:35:31:39 | input | +| test.c:70:28:70:32 | input | test.c:70:28:70:32 | input indirection | +| test.c:70:28:70:32 | input | test.c:79:16:79:20 | input | +| test.c:70:28:70:32 | input | test.c:80:16:80:20 | input | +| test.c:70:28:70:32 | input indirection | test.c:74:19:74:23 | input | +| test.c:70:28:70:32 | input indirection | test.c:75:21:75:25 | input | +| test.c:75:21:75:25 | input | test.c:31:35:31:39 | input | +| test.c:84:35:84:39 | input | test.c:84:35:84:39 | input indirection | +| test.c:84:35:84:39 | input | test.c:93:10:93:14 | input | +| test.c:84:35:84:39 | input | test.c:93:29:93:33 | input | +| test.c:84:35:84:39 | input indirection | test.c:89:26:89:30 | input | +| test.c:104:29:104:33 | input | test.c:105:22:105:26 | input | +| test.c:105:22:105:26 | input | test.c:36:48:36:52 | input | +| test.c:108:30:108:34 | input | test.c:109:20:109:24 | input | +| test.c:109:20:109:24 | input | test.c:70:28:70:32 | input | +| test.c:112:37:112:41 | input | test.c:113:27:113:31 | input | +| test.c:113:27:113:31 | input | test.c:84:35:84:39 | input | +nodes +| test.c:31:35:31:39 | input | semmle.label | input | +| test.c:31:35:31:39 | input | semmle.label | input | +| test.c:31:35:31:39 | input | semmle.label | input | +| test.c:32:10:32:14 | input | semmle.label | input | +| test.c:32:10:32:14 | input | semmle.label | input | +| test.c:32:10:32:14 | input | semmle.label | input | +| test.c:32:28:32:32 | input | semmle.label | input | +| test.c:32:28:32:32 | input | semmle.label | input | +| test.c:33:10:33:14 | input | semmle.label | input | +| test.c:33:10:33:14 | input | semmle.label | input | +| test.c:36:48:36:52 | input | semmle.label | input | +| test.c:38:10:38:14 | input | semmle.label | input | +| test.c:38:28:38:32 | input | semmle.label | input | +| test.c:39:10:39:14 | input | semmle.label | input | +| test.c:40:19:40:23 | input | semmle.label | input | +| test.c:46:10:46:14 | input | semmle.label | input | +| test.c:46:28:46:32 | input | semmle.label | input | +| test.c:47:10:47:14 | input | semmle.label | input | +| test.c:48:19:48:23 | input | semmle.label | input | +| test.c:51:12:51:16 | input | semmle.label | input | +| test.c:51:30:51:34 | input | semmle.label | input | +| test.c:52:12:52:16 | input | semmle.label | input | +| test.c:55:21:55:25 | input | semmle.label | input | +| test.c:70:28:70:32 | input | semmle.label | input | +| test.c:70:28:70:32 | input indirection | semmle.label | input indirection | +| test.c:74:19:74:23 | input | semmle.label | input | +| test.c:75:21:75:25 | input | semmle.label | input | +| test.c:79:16:79:20 | input | semmle.label | input | +| test.c:80:16:80:20 | input | semmle.label | input | +| test.c:84:35:84:39 | input | semmle.label | input | +| test.c:84:35:84:39 | input indirection | semmle.label | input indirection | +| test.c:89:26:89:30 | input | semmle.label | input | +| test.c:93:10:93:14 | input | semmle.label | input | +| test.c:93:29:93:33 | input | semmle.label | input | +| test.c:104:29:104:33 | input | semmle.label | input | +| test.c:105:22:105:26 | input | semmle.label | input | +| test.c:108:30:108:34 | input | semmle.label | input | +| test.c:109:20:109:24 | input | semmle.label | input | +| test.c:112:37:112:41 | input | semmle.label | input | +| test.c:113:27:113:31 | input | semmle.label | input | +subpaths +#select +| test.c:32:10:32:14 | input | test.c:104:29:104:33 | input | test.c:32:10:32:14 | input | Dynamic input access does not match prior type-validation $@. | test.c:53:14:53:27 | call to DYN_INPUT_TYPE | here | +| test.c:32:10:32:14 | input | test.c:104:29:104:33 | input | test.c:32:10:32:14 | input | No type validation performed before dynamic input access. | test.c:32:10:32:14 | input | here | +| test.c:32:10:32:14 | input | test.c:108:30:108:34 | input | test.c:32:10:32:14 | input | Dynamic input access does not match prior type-validation $@. | test.c:71:22:71:35 | call to DYN_INPUT_TYPE | here | +| test.c:32:28:32:32 | input | test.c:104:29:104:33 | input | test.c:32:28:32:32 | input | No type validation performed before dynamic input access. | test.c:32:28:32:32 | input | here | +| test.c:32:28:32:32 | input | test.c:108:30:108:34 | input | test.c:32:28:32:32 | input | Dynamic input access does not match prior type-validation $@. | test.c:71:22:71:35 | call to DYN_INPUT_TYPE | here | +| test.c:33:10:33:14 | input | test.c:104:29:104:33 | input | test.c:33:10:33:14 | input | No type validation performed before dynamic input access. | test.c:33:10:33:14 | input | here | +| test.c:33:10:33:14 | input | test.c:108:30:108:34 | input | test.c:33:10:33:14 | input | Dynamic input access does not match prior type-validation $@. | test.c:71:22:71:35 | call to DYN_INPUT_TYPE | here | +| test.c:38:10:38:14 | input | test.c:104:29:104:33 | input | test.c:38:10:38:14 | input | No type validation performed before dynamic input access. | test.c:38:10:38:14 | input | here | +| test.c:38:28:38:32 | input | test.c:104:29:104:33 | input | test.c:38:28:38:32 | input | No type validation performed before dynamic input access. | test.c:38:28:38:32 | input | here | +| test.c:39:10:39:14 | input | test.c:104:29:104:33 | input | test.c:39:10:39:14 | input | No type validation performed before dynamic input access. | test.c:39:10:39:14 | input | here | +| test.c:46:10:46:14 | input | test.c:104:29:104:33 | input | test.c:46:10:46:14 | input | No type validation performed before dynamic input access. | test.c:46:10:46:14 | input | here | +| test.c:46:28:46:32 | input | test.c:104:29:104:33 | input | test.c:46:28:46:32 | input | No type validation performed before dynamic input access. | test.c:46:28:46:32 | input | here | +| test.c:47:10:47:14 | input | test.c:104:29:104:33 | input | test.c:47:10:47:14 | input | No type validation performed before dynamic input access. | test.c:47:10:47:14 | input | here | +| test.c:51:12:51:16 | input | test.c:104:29:104:33 | input | test.c:51:12:51:16 | input | No type validation performed before dynamic input access. | test.c:51:12:51:16 | input | here | +| test.c:51:30:51:34 | input | test.c:104:29:104:33 | input | test.c:51:30:51:34 | input | No type validation performed before dynamic input access. | test.c:51:30:51:34 | input | here | +| test.c:52:12:52:16 | input | test.c:104:29:104:33 | input | test.c:52:12:52:16 | input | No type validation performed before dynamic input access. | test.c:52:12:52:16 | input | here | +| test.c:74:19:74:23 | input | test.c:108:30:108:34 | input | test.c:74:19:74:23 | input | Dynamic input access does not match prior type-validation $@. | test.c:71:22:71:35 | call to DYN_INPUT_TYPE | here | +| test.c:79:16:79:20 | input | test.c:108:30:108:34 | input | test.c:79:16:79:20 | input | No type validation performed before dynamic input access. | test.c:79:16:79:20 | input | here | +| test.c:80:16:80:20 | input | test.c:108:30:108:34 | input | test.c:80:16:80:20 | input | No type validation performed before dynamic input access. | test.c:80:16:80:20 | input | here | +| test.c:89:26:89:30 | input | test.c:112:37:112:41 | input | test.c:89:26:89:30 | input | Dynamic input access does not match prior type-validation $@. | test.c:85:22:85:35 | call to DYN_INPUT_TYPE | here | +| test.c:93:10:93:14 | input | test.c:112:37:112:41 | input | test.c:93:10:93:14 | input | No type validation performed before dynamic input access. | test.c:93:10:93:14 | input | here | +| test.c:93:29:93:33 | input | test.c:112:37:112:41 | input | test.c:93:29:93:33 | input | No type validation performed before dynamic input access. | test.c:93:29:93:33 | input | here | diff --git a/solutions-tests/Exercise16/Exercise16.qlref b/solutions-tests/Exercise16/Exercise16.qlref new file mode 100644 index 0000000..b0aff6b --- /dev/null +++ b/solutions-tests/Exercise16/Exercise16.qlref @@ -0,0 +1 @@ +Exercise16.ql \ No newline at end of file