├── .gitignore ├── LICENSE ├── README ├── TODO ├── addr-null ├── README ├── p1.c ├── p1.output ├── p2.c └── p2.output ├── array-oob ├── README ├── p1.c ├── p1.output ├── p2.c └── p2.output ├── dangling-pointer ├── README ├── p1.c ├── p1.output ├── p2.c ├── p2.output1 ├── p2.output2 ├── p3.c ├── p3.output1 └── p3.output2 ├── int-min-mod-minus-1 ├── README ├── p1.c └── p1.output ├── invalid-fp-conversion ├── README ├── p1.c ├── p1.output1 └── p1.output2 ├── memcpy-overlap ├── README ├── p1.c └── p1.output ├── modify-string-literal ├── README ├── p1.c └── p1.output ├── pointer-casts ├── README ├── p1.c ├── p1.output ├── p2.c └── p2.output ├── run-canaries ├── shift-by-bitwidth ├── README ├── p1.c └── p1.output ├── signed-integer-overflow ├── README ├── p1.c ├── p1.output ├── p2.c └── p2.output ├── signed-left-shift ├── README ├── p1.c ├── p1.output ├── p2.c └── p2.output ├── strict-aliasing ├── README ├── p1.c └── p1.output ├── swap-without-sequence-points ├── README └── p1.c └── uninitialized-variable ├── README ├── p1.c ├── p1.output1 ├── p1.output2 ├── p2.c ├── p2.output1 ├── p2.output2 ├── p3.c ├── p3.output1 ├── p3.output2 ├── p3.output3 ├── p3.output4 ├── p3.output5 ├── p4.c ├── p4.output ├── p5.c └── p5.output /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regehr/ub-canaries/HEAD/.gitignore -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regehr/ub-canaries/HEAD/LICENSE -------------------------------------------------------------------------------- /README: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regehr/ub-canaries/HEAD/README -------------------------------------------------------------------------------- /TODO: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regehr/ub-canaries/HEAD/TODO -------------------------------------------------------------------------------- /addr-null/README: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regehr/ub-canaries/HEAD/addr-null/README -------------------------------------------------------------------------------- /addr-null/p1.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regehr/ub-canaries/HEAD/addr-null/p1.c -------------------------------------------------------------------------------- /addr-null/p1.output: -------------------------------------------------------------------------------- 1 | f is NULL 2 | -------------------------------------------------------------------------------- /addr-null/p2.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regehr/ub-canaries/HEAD/addr-null/p2.c -------------------------------------------------------------------------------- /addr-null/p2.output: -------------------------------------------------------------------------------- 1 | f is NULL 2 | -------------------------------------------------------------------------------- /array-oob/README: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regehr/ub-canaries/HEAD/array-oob/README -------------------------------------------------------------------------------- /array-oob/p1.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regehr/ub-canaries/HEAD/array-oob/p1.c -------------------------------------------------------------------------------- /array-oob/p1.output: -------------------------------------------------------------------------------- 1 | 0 2 | -------------------------------------------------------------------------------- /array-oob/p2.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regehr/ub-canaries/HEAD/array-oob/p2.c -------------------------------------------------------------------------------- /array-oob/p2.output: -------------------------------------------------------------------------------- 1 | 0 2 | -------------------------------------------------------------------------------- /dangling-pointer/README: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regehr/ub-canaries/HEAD/dangling-pointer/README -------------------------------------------------------------------------------- /dangling-pointer/p1.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regehr/ub-canaries/HEAD/dangling-pointer/p1.c -------------------------------------------------------------------------------- /dangling-pointer/p1.output: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regehr/ub-canaries/HEAD/dangling-pointer/p1.output -------------------------------------------------------------------------------- /dangling-pointer/p2.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regehr/ub-canaries/HEAD/dangling-pointer/p2.c -------------------------------------------------------------------------------- /dangling-pointer/p2.output1: -------------------------------------------------------------------------------- 1 | 2 2 2 | -------------------------------------------------------------------------------- /dangling-pointer/p2.output2: -------------------------------------------------------------------------------- 1 | foo 2 | -------------------------------------------------------------------------------- /dangling-pointer/p3.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regehr/ub-canaries/HEAD/dangling-pointer/p3.c -------------------------------------------------------------------------------- /dangling-pointer/p3.output1: -------------------------------------------------------------------------------- 1 | 2 2 2 | -------------------------------------------------------------------------------- /dangling-pointer/p3.output2: -------------------------------------------------------------------------------- 1 | foo 2 | -------------------------------------------------------------------------------- /int-min-mod-minus-1/README: -------------------------------------------------------------------------------- 1 | The assumption is that INT_MIN % -1 == 0. 2 | -------------------------------------------------------------------------------- /int-min-mod-minus-1/p1.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regehr/ub-canaries/HEAD/int-min-mod-minus-1/p1.c -------------------------------------------------------------------------------- /int-min-mod-minus-1/p1.output: -------------------------------------------------------------------------------- 1 | 0 2 | 0 3 | -------------------------------------------------------------------------------- /invalid-fp-conversion/README: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regehr/ub-canaries/HEAD/invalid-fp-conversion/README -------------------------------------------------------------------------------- /invalid-fp-conversion/p1.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regehr/ub-canaries/HEAD/invalid-fp-conversion/p1.c -------------------------------------------------------------------------------- /invalid-fp-conversion/p1.output1: -------------------------------------------------------------------------------- 1 | ix is 0 2 | -------------------------------------------------------------------------------- /invalid-fp-conversion/p1.output2: -------------------------------------------------------------------------------- 1 | ix is not 0 2 | -------------------------------------------------------------------------------- /memcpy-overlap/README: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regehr/ub-canaries/HEAD/memcpy-overlap/README -------------------------------------------------------------------------------- /memcpy-overlap/p1.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regehr/ub-canaries/HEAD/memcpy-overlap/p1.c -------------------------------------------------------------------------------- /memcpy-overlap/p1.output: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regehr/ub-canaries/HEAD/memcpy-overlap/p1.output -------------------------------------------------------------------------------- /modify-string-literal/README: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regehr/ub-canaries/HEAD/modify-string-literal/README -------------------------------------------------------------------------------- /modify-string-literal/p1.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regehr/ub-canaries/HEAD/modify-string-literal/p1.c -------------------------------------------------------------------------------- /modify-string-literal/p1.output: -------------------------------------------------------------------------------- 1 | The slow brown fox 2 | -------------------------------------------------------------------------------- /pointer-casts/README: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regehr/ub-canaries/HEAD/pointer-casts/README -------------------------------------------------------------------------------- /pointer-casts/p1.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regehr/ub-canaries/HEAD/pointer-casts/p1.c -------------------------------------------------------------------------------- /pointer-casts/p1.output: -------------------------------------------------------------------------------- 1 | var is 20 2 | -------------------------------------------------------------------------------- /pointer-casts/p2.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regehr/ub-canaries/HEAD/pointer-casts/p2.c -------------------------------------------------------------------------------- /pointer-casts/p2.output: -------------------------------------------------------------------------------- 1 | var is 35 2 | -------------------------------------------------------------------------------- /run-canaries: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regehr/ub-canaries/HEAD/run-canaries -------------------------------------------------------------------------------- /shift-by-bitwidth/README: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regehr/ub-canaries/HEAD/shift-by-bitwidth/README -------------------------------------------------------------------------------- /shift-by-bitwidth/p1.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regehr/ub-canaries/HEAD/shift-by-bitwidth/p1.c -------------------------------------------------------------------------------- /shift-by-bitwidth/p1.output: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regehr/ub-canaries/HEAD/shift-by-bitwidth/p1.output -------------------------------------------------------------------------------- /signed-integer-overflow/README: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regehr/ub-canaries/HEAD/signed-integer-overflow/README -------------------------------------------------------------------------------- /signed-integer-overflow/p1.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regehr/ub-canaries/HEAD/signed-integer-overflow/p1.c -------------------------------------------------------------------------------- /signed-integer-overflow/p1.output: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regehr/ub-canaries/HEAD/signed-integer-overflow/p1.output -------------------------------------------------------------------------------- /signed-integer-overflow/p2.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regehr/ub-canaries/HEAD/signed-integer-overflow/p2.c -------------------------------------------------------------------------------- /signed-integer-overflow/p2.output: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regehr/ub-canaries/HEAD/signed-integer-overflow/p2.output -------------------------------------------------------------------------------- /signed-left-shift/README: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regehr/ub-canaries/HEAD/signed-left-shift/README -------------------------------------------------------------------------------- /signed-left-shift/p1.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regehr/ub-canaries/HEAD/signed-left-shift/p1.c -------------------------------------------------------------------------------- /signed-left-shift/p1.output: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regehr/ub-canaries/HEAD/signed-left-shift/p1.output -------------------------------------------------------------------------------- /signed-left-shift/p2.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regehr/ub-canaries/HEAD/signed-left-shift/p2.c -------------------------------------------------------------------------------- /signed-left-shift/p2.output: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regehr/ub-canaries/HEAD/signed-left-shift/p2.output -------------------------------------------------------------------------------- /strict-aliasing/README: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regehr/ub-canaries/HEAD/strict-aliasing/README -------------------------------------------------------------------------------- /strict-aliasing/p1.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regehr/ub-canaries/HEAD/strict-aliasing/p1.c -------------------------------------------------------------------------------- /strict-aliasing/p1.output: -------------------------------------------------------------------------------- 1 | 6 2 | -------------------------------------------------------------------------------- /swap-without-sequence-points/README: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regehr/ub-canaries/HEAD/swap-without-sequence-points/README -------------------------------------------------------------------------------- /swap-without-sequence-points/p1.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regehr/ub-canaries/HEAD/swap-without-sequence-points/p1.c -------------------------------------------------------------------------------- /uninitialized-variable/README: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regehr/ub-canaries/HEAD/uninitialized-variable/README -------------------------------------------------------------------------------- /uninitialized-variable/p1.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regehr/ub-canaries/HEAD/uninitialized-variable/p1.c -------------------------------------------------------------------------------- /uninitialized-variable/p1.output1: -------------------------------------------------------------------------------- 1 | p is false 2 | -------------------------------------------------------------------------------- /uninitialized-variable/p1.output2: -------------------------------------------------------------------------------- 1 | p is true 2 | -------------------------------------------------------------------------------- /uninitialized-variable/p2.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regehr/ub-canaries/HEAD/uninitialized-variable/p2.c -------------------------------------------------------------------------------- /uninitialized-variable/p2.output1: -------------------------------------------------------------------------------- 1 | p is false 2 | -------------------------------------------------------------------------------- /uninitialized-variable/p2.output2: -------------------------------------------------------------------------------- 1 | p is true 2 | -------------------------------------------------------------------------------- /uninitialized-variable/p3.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regehr/ub-canaries/HEAD/uninitialized-variable/p3.c -------------------------------------------------------------------------------- /uninitialized-variable/p3.output1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regehr/ub-canaries/HEAD/uninitialized-variable/p3.output1 -------------------------------------------------------------------------------- /uninitialized-variable/p3.output2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regehr/ub-canaries/HEAD/uninitialized-variable/p3.output2 -------------------------------------------------------------------------------- /uninitialized-variable/p3.output3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regehr/ub-canaries/HEAD/uninitialized-variable/p3.output3 -------------------------------------------------------------------------------- /uninitialized-variable/p3.output4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regehr/ub-canaries/HEAD/uninitialized-variable/p3.output4 -------------------------------------------------------------------------------- /uninitialized-variable/p3.output5: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regehr/ub-canaries/HEAD/uninitialized-variable/p3.output5 -------------------------------------------------------------------------------- /uninitialized-variable/p4.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regehr/ub-canaries/HEAD/uninitialized-variable/p4.c -------------------------------------------------------------------------------- /uninitialized-variable/p4.output: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /uninitialized-variable/p5.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/regehr/ub-canaries/HEAD/uninitialized-variable/p5.c -------------------------------------------------------------------------------- /uninitialized-variable/p5.output: -------------------------------------------------------------------------------- 1 | --------------------------------------------------------------------------------