From 7fc29b3248e47654e828c82c2c77243614d65995 Mon Sep 17 00:00:00 2001 From: Julian Sutherland Date: Mon, 3 Sep 2018 08:48:28 -0700 Subject: [PATCH] Added unit tests for function pointers Reviewed By: ezgicicek Differential Revision: D9613335 fbshipit-source-id: afac23211 --- infer/tests/codetoanalyze/cpp/quandary/pointers.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/infer/tests/codetoanalyze/cpp/quandary/pointers.cpp b/infer/tests/codetoanalyze/cpp/quandary/pointers.cpp index 74e90781f..6f2e5ae79 100644 --- a/infer/tests/codetoanalyze/cpp/quandary/pointers.cpp +++ b/infer/tests/codetoanalyze/cpp/quandary/pointers.cpp @@ -65,6 +65,18 @@ void FP_reuse_pointer_as_local_ok(std::string* pointer) { __infer_taint_sink(*pointer); } +void funptr_helper_bad1(void (*sink)(std::string)) { + sink(*(__infer_taint_source())); +} + +void funptr_bad1() { funptr_helper_bad1(__infer_taint_sink); } + +void funptr_helper_bad2(std::string* (*source)()) { + __infer_taint_sink(*(source())); +} + +void funptr_bad2() { funptr_helper_bad2(__infer_taint_source); } + void pointer_arithmetic_ok1(int* i) { *(i + 1) = 7; } void pointer_arithmetic_ok2(int* i) { *(2 + 7 + 5 + i + 1) = 7; }