From 758ebb324340e9981ab12d4b3d3432fc6af3b983 Mon Sep 17 00:00:00 2001 From: Daniel Kroening Date: Tue, 7 Nov 2017 16:32:13 +0000 Subject: [PATCH 1/2] transfer taint on memcpy and memmove --- .../taint-memcpy1/main.c | 15 +++++++++++++++ .../taint-memcpy1/main.o | Bin 0 -> 5637 bytes .../taint-memcpy1/taint.json | 4 ++++ .../taint-memcpy1/test.desc | 7 +++++++ src/analyses/custom_bitvector_analysis.cpp | 13 +++++++++++++ 5 files changed, 39 insertions(+) create mode 100644 regression/goto-analyzer-taint-ansi-c/taint-memcpy1/main.c create mode 100644 regression/goto-analyzer-taint-ansi-c/taint-memcpy1/main.o create mode 100644 regression/goto-analyzer-taint-ansi-c/taint-memcpy1/taint.json create mode 100644 regression/goto-analyzer-taint-ansi-c/taint-memcpy1/test.desc diff --git a/regression/goto-analyzer-taint-ansi-c/taint-memcpy1/main.c b/regression/goto-analyzer-taint-ansi-c/taint-memcpy1/main.c new file mode 100644 index 00000000000..806b14fa2b4 --- /dev/null +++ b/regression/goto-analyzer-taint-ansi-c/taint-memcpy1/main.c @@ -0,0 +1,15 @@ +#include + +void my_f(void *) { } +void my_h(void *) { } + +void my_function() +{ + void *o1; + my_f(o1); // T1 source + + void *o2; + memcpy(o2, o1, 100); + + my_h(o2); // T1 sink +} diff --git a/regression/goto-analyzer-taint-ansi-c/taint-memcpy1/main.o b/regression/goto-analyzer-taint-ansi-c/taint-memcpy1/main.o new file mode 100644 index 0000000000000000000000000000000000000000..566d8da99a72e7df83eeb8264b5ef93737bea913 GIT binary patch literal 5637 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 Date: Fri, 10 Nov 2017 14:33:13 +0000 Subject: [PATCH 2/2] Makefile for goto-analyzer-taint-ansi-c --- .../goto-analyzer-taint-ansi-c/Makefile | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 regression/goto-analyzer-taint-ansi-c/Makefile diff --git a/regression/goto-analyzer-taint-ansi-c/Makefile b/regression/goto-analyzer-taint-ansi-c/Makefile new file mode 100644 index 00000000000..462e051669c --- /dev/null +++ b/regression/goto-analyzer-taint-ansi-c/Makefile @@ -0,0 +1,19 @@ +default: tests.log + +test: + @../test.pl -p -c ../../../src/goto-analyzer/goto-analyzer + +tests.log: ../test.pl + @../test.pl -p -c ../../../src/goto-analyzer/goto-analyzer + +show: + @for dir in *; do \ + if [ -d "$$dir" ]; then \ + vim -o "$$dir/*.java" "$$dir/*.out"; \ + fi; \ + done; + +clean: + find -name '*.out' -execdir $(RM) '{}' \; + find -name '*.gb' -execdir $(RM) '{}' \; + $(RM) tests.log