Commit Graph

414 Commits (8ef346acbeee73476946e5fcb49b28c3bf42f370)

Author SHA1 Message Date
Mehdi Bouaziz aad66bc6f6 [inferbo] More tests 8 years ago
Jia Chen 1edcbce35b Whitelist std::swap in C++ analyses 8 years ago
Daiva Naudziuniene 336b7182c3 [ThreadSafety] Releasing lock at the end of the procedure if it has a lock_guard field. 8 years ago
Mehdi Bouaziz 69e0063593 [vector] Define _LIBCPP_VECTOR / _GLIBCXX_VECTOR 8 years ago
Sam Blackshear 5a420f7aee [quandary] only report code injection via endpoints on strings 8 years ago
Kihong Heo 8567afdf55 [inferbo] add instantiation for parameters (call-by-ptr/ref) 8 years ago
Daiva Naudziuniene 5938c6331d [ThreadSafety] Extending lock model with lock_quard. 8 years ago
Jia Chen 938425020d [infer] Do not treat static locals as stack-allocated in the biabduction analysis 8 years ago
Sam Blackshear 4fe9110ad3 [quandary] SQL sinks 8 years ago
Sam Blackshear 7b8eef52f8 [thread-safety] fix bad read/write race traces 8 years ago
Daiva Naudziuniene 093a00af9b [ThreadSafety] Do not report for c++ classes that do not have mutex member. 8 years ago
Sam Blackshear 3135560283 [quandary] move trace expansion logic into Quandary 8 years ago
Jia Chen c0e20e0880 Propagate C++ noexcept annotation from frontend to backend 8 years ago
Daiva Naudziuniene f4b9bb3e3b [ThreadSafety] Do not report unprotected writes for c++. 8 years ago
Mehdi Bouaziz 70c4aec26e [inferbo] Fix vector model 8 years ago
Sam Blackshear 4ef487928c [quandary] make passthroughs optional 8 years ago
Sam Blackshear 38d3946c71 [quandary] support for basic return value sanitizers 8 years ago
Kihong Heo 485814a75a [Inferbo] remove redundant alarm message 8 years ago
Mehdi Bouaziz c9803a6481 False negative tests for std::timed_mutex 8 years ago
Mehdi Bouaziz b2e03b1734 [inferbo] New test for call by ptr/ref 8 years ago
Josh Berdine bf504c5b70 Minimal thread safety analysis for C++ 8 years ago
Sam Blackshear 54f1122bc0 [quandary] allowing specification of C++ endpoints 8 years ago
Sam Blackshear 45aaa4da93 [quandary] gflag globals as source 8 years ago
Sam Blackshear abc5642c83 [quandary] tests for string functionality 8 years ago
Sam Blackshear d5f4784e61 [quandary] add more exec sinks 8 years ago
Kihong Heo 984a81413a [inferbo] Top for unanalyzed variables (e.g., global variables) 8 years ago
Jules Villard 06dfadecb7 [pmd] handle failure of decoding procedure ids as Java methods 8 years ago
Jules Villard 93ec47a5f4 [IR] add stride to array type 8 years ago
Sam Blackshear 9910391144 [quandary] improved handling of unknown code in C++ 8 years ago
Sam Blackshear b7afa4727d [hil] fix crash when translating C code that indexes string literals like arrays or does pointer arithmetic 8 years ago
Sam Blackshear 4e97d1e991 [quandary] add support for C++ parameter passing modes that differ from Java 8 years ago
Mehdi Bouaziz 491cc2587b [infer] More mutex models 8 years ago
Sam Blackshear 30b3075d11 [quandary] allow specification of parameter sources via JSON 8 years ago
Sam Blackshear 6c8f3fe618 [quandary] allocation as a sink 8 years ago
Jeremy Dubreil 7e12885f98 [infer][checkers] remove the quandary analyzer option and rely on the --quandary flag only 8 years ago
Sam Blackshear 6af6ef35ec [quandary] support sources that taint a pointer arg or arg passed by ref rather than the return value 8 years ago
Sam Blackshear 28bc279cdc [quandary] tests for passthroughs 8 years ago
Sam Blackshear a0377fe8c9 [quandary] treat call to unknown operator= as assignment 8 years ago
Sam Blackshear 9dc7e3d66f [quandary] handle return value passed by reference in sources 8 years ago
Mehdi Bouaziz 37896ff435 [inferbo] More errors on symbolic intervals 8 years ago
Mehdi Bouaziz 5a57be9003 [infer][checkers] remove the bufferoverrun analyzer option and rely on the --bufferoverrun flag only 8 years ago
Jeremy Dubreil 8064ac2614 [infer][checkers] remove the siof analyzer option and rely on the --siof flag only 8 years ago
Dulma Churchill 6097c05d88 [clang] Add a preanalysis to compute nullability annotations 8 years ago
Sam Blackshear a02b37a03c [quandary] allow custom sources/sinks in C++ 8 years ago
Mehdi Bouaziz 3131660ede [inferbo] Model-like test for vector 8 years ago
Andrzej Kotulski c1147710ba [C++] Store class template name without its template arguments 8 years ago
Andrzej Kotulski 462220ce3e [typ] Print type qualifiers in Typ.pp_full 8 years ago
Andrzej Kotulski aefbbe8680 [clang] Translate type qualifiers into Sil 8 years ago
Mehdi Bouaziz 2dbde13335 [inferbo] Use Logging for logging 8 years ago
Jules Villard 31a6aba3c2 [siof] enable SIOF checker only when new --siof option is passed 8 years ago
Mehdi Bouaziz d20d71da50 [bufferoverrun][tests] Move bufferoverrun cpp tests to their own directory 8 years ago
Kihong Heo 9cad51d00a [Bufferoverrun] add vector test for cpp 8 years ago
Jules Villard 652cf81dab disable flaky generic model test 8 years ago
Andrzej Kotulski 62d1d74d74 [Typ] Change Typ.pp_full to not include class keywords 8 years ago
Andrzej Kotulski fc7b427126 update fcp 8 years ago
Andrzej Kotulski 5503487704 [C++] Introduce mechanism to write generic models 8 years ago
Andrzej Kotulski 21af28619f [C++] Use annotate attribute instead of deprecated 8 years ago
Paco Estevez Garcia 5482f110c1 Add type path_exec to represent an skipped path of execution. Add logic to symExec to report skipped paths 8 years ago
Andrzej Kotulski fbddeba8a7 [clang] Don't inline global var initializers 8 years ago
Andrzej Kotulski 5cfde325fd [C++] Fix matching of qualified cpp names 8 years ago
Andrzej Kotulski 4da4949049 [clang][AST] Fix wrong type in translation of NoOp cast and MaterializeExpr 8 years ago
Mehdi Bouaziz f65ac4f094 [infer] std::mutex model to detect simple double lock 8 years ago
Andrzej Kotulski d4e9f0de64 [Makefile] Print duplicate symbols to separate file, not stderr 8 years ago
Andrzej Kotulski c695616eff [Makefile][C++] Run c++ tests with native libs 8 years ago
Andrzej Kotulski 24b56de0e9 Populate mangled file only if it's not empty 8 years ago
Andrzej Kotulski 6a02568982 [clang] Change procname file naming scheme 8 years ago
Andrzej Kotulski e08d9341c8 [clang] Run direct tests with --no-failures-allowed flag 8 years ago
Andrzej Kotulski 4b620316d3 Update fcp 8 years ago
Andrzej Kotulski ef79b20e17 [clang] Inline namespaces disappear, simplify infer's code 8 years ago
Jules Villard a79096efa8 [siof] generic model of std::ios_base::Init that prevents SIOF 8 years ago
Jules Villard a469e97987 [siof] add --siof-safe-methods whitelisting option 8 years ago
Andrzej Kotulski 40c84077d9 [C++] Fix model of std::vector 8 years ago
Andrzej Kotulski f697739b21 [C++ translation] Use correct type when generating dereference 8 years ago
Andrzej Kotulski 96ba74d18e [C++] whitelist C++ std::vector iterator implementation 8 years ago
Jules Villard c51c4a21ae [siof] collate multiple reports at the same line into one 8 years ago
Jules Villard a6be58848b [make] make frontend tests more functional 8 years ago
Jules Villard bce1a1ff2e [make] make infer/src/Makefile less phony 8 years ago
Andrzej Kotulski 13fcb27431 [C++] Fix compilation errors coming from smart pointer models 8 years ago
Jules Villard e5863f5420 [siof] handle constexpr constructors 8 years ago
Jules Villard 9cc9cc101c [IR] add Static_local_var pvar kind and use it in clang 8 years ago
Josh Berdine 0cf71c74ef Sort nodes when printing cfg to dot file 8 years ago
Andrzej Kotulski 6192cb98b4 [DB] Use realpath when calling source_file_from_abs_path 8 years ago
Andrzej Kotulski 2810740377 [tests] Make project root infer/test/ for clang tests 8 years ago
Dulma Churchill 8415b6c38b [backend] do not log analysis_stops in debug_exceptions mode 8 years ago
Sam Blackshear 708c0bf1f8 [backend] eliminate phantom spaces in printing of types 8 years ago
Sam Blackshear adacee51e2 [quandary] switch to --issues-tests printing 8 years ago
Jules Villard 17179d4275 [siof] take POD into account 8 years ago
Jules Villard 15d80e04df [tests] record summary of bug traces 8 years ago
Jules Villard ac47d115f5 [tests] include clang.make a bit later to fix compile target 8 years ago
Jules Villard 281d5b49fe [tests] sort bugs in InferPrint 8 years ago
Andrzej Kotulski 6b083af4f3 [tests] small refactor of frontend makefiles 8 years ago
Jules Villard 0085417e0d [siof] better error reports using `Errlog.loc_trace`s 8 years ago
Jules Villard 5bd8b7fa95 [make] compatibility with Debian testing 8 years ago
Sam Blackshear fcf57c6e09 [siof] add fancy interprocedural reporting 8 years ago
Jules Villard d5e7ee0d82 [tests] run tests using report.json and record all bugs + exceptions 8 years ago
Jules Villard c9bac51b81 [tests] make clang tests Makefile more functional 8 years ago
Sam Blackshear fde7a6ecf3 [quandary] support for full interprocedural traces 8 years ago
Andrzej Kotulski 28827b461a [clang] Get translation unit language from AST dump 8 years ago
Cristiano Calcagno a71902355f [debug][dotty] Fix issue in dotty output where overloaded functions were conflated 8 years ago
Sam Blackshear 874e7f000d [quandary] functions that transitively return sources are sources, not passthroughs 8 years ago
Sam Blackshear d76a7ef43a [quandary] functions that transitively call sinks are sinks, not passthroughs 8 years ago
Sam Blackshear d7ae77c7c2 [quandary] make intent/logging private data tests intraprocedural 8 years ago
Cristiano Calcagno 3fb8801b6c [IR] Change cfg representation so the node number is per-procedure and not per-cfg 8 years ago
Josh Berdine 175e85525d [tests] Convert java tests to avoid phony targets 8 years ago
Jules Villard 84af7c56f8 [SIOF] detect which variables need initialization 8 years ago
Josh Berdine f45cf115e6 [test] Do not use infer from PATH 8 years ago
Sam Blackshear 6fc1a7e20f [quandary] reporting on array passed to sink when contents of array are tainted 9 years ago
Jules Villard 5fe40bae12 [siof] check origin of globals and complain if potential siof 9 years ago
Jules Villard 62bfde8b5a [clang] translate global var initializers 9 years ago
Andrzej Kotulski 0f9f44f16e [backend] Report ignored return value on skip functions 9 years ago
Sam Blackshear 072fe0994f [quandary] reporting on getenv -> exec flows 9 years ago
Andrzej Kotulski 2deeb3673a [C++] Don't put model includes on -isystem path in test 9 years ago
Sam Blackshear 3624fea737 [quandary] tests for C++ analysis 9 years ago
Jules Villard c53bfe3159 [clang] rewrite plugin attachment logic in OCaml 9 years ago
Josh Berdine 6697ed781f [tests] Rerun test without swallowing output on failure 9 years ago
Cristiano Calcagno 847c141912 [tests] Clean up test files shared between frontend and endtoend tests 9 years ago
Cristiano Calcagno b0980bc35e [tests] Convert c/c++ frontend tests to new format. 9 years ago
Cristiano Calcagno ec67521c6f [backend] Fix issue where the attribute of a procedure definition could be overwritten with the attribute of a declaration 9 years ago
Cristiano Calcagno c613820a98 Convert c tests to the new testing format 9 years ago
Cristiano Calcagno 0b7ea202db Convert infer c++ tests to new format 9 years ago
Andrzej Kotulski 41e51bc28c Clean up smart pointer header models 9 years ago
Andrzej Kotulski 4637bf877e model unique_ptr<T> as T* 9 years ago
Andrzej Kotulski 4cd9470586 Skip Sil.Call instruction for some shared_ptr method calls 9 years ago
Andrzej Kotulski 2baf3f8456 Replace shared_ptr<T> structs with T* pointers 9 years ago
Jules Villard 145cb744f6 do not havoc actuals of skip functions with const parameters 9 years ago
Martino Luca 40b176fd01 Translate global const vars locally to a procedure 9 years ago
Daiva Naudziuniene ac9cabe677 Fixing Memory leak false positives in C++/ObjC 9 years ago
Jules Villard 10f10a90c6 diverge on `throw` 9 years ago
Andrzej Kotulski 0aa5101a05 Replace space with _ in type names 9 years ago
Andrzej Kotulski 5ed50f5a97 Keep more precise information in constructor's var_exp_typ 9 years ago
Daiva Naudziuniene dfb7c15303 Fixing Resource leak false positives assuming developers use raii. 9 years ago
Sam Blackshear d946a7bc33 fix ugly printing of NONE idents 9 years ago
Andrzej Kotulski 118295e03c Fix C++ models of c library 9 years ago
Sam Blackshear 7b58c71475 centralize creation and detection of clang tmp vars, fix errdesc/bucketing 9 years ago
Andrzej Kotulski 9cda4ca6bf Add models of shared_ptr comparison operators 9 years ago
Sam Blackshear 006bd06adb add concept of a dummy identifier 9 years ago
Andrzej Kotulski 9b07a3e762 Never call destructor on delete expression 9 years ago
Andrzej Kotulski e46cddb52b Use mangling in function parameters to encode its position 9 years ago
Andrzej Kotulski c7d6d904f7 Whitelist std::min and std::max 9 years ago
Dulma Churchill edc57f70f5 Translate CXXNoexceptExpr 9 years ago
Dulma Churchill 8bfa983716 Translate TypeTraitExpr 9 years ago
Dulma Churchill 52e037f77c Translate AttributedStmt and Fallthrough attribute 9 years ago
Andrzej Kotulski 3603fc3176 Modify cast_with_enforce.cpp test to not include <string> 9 years ago
Dulma Churchill b1e3d994bd Report more cases of null dereference as empty vector access 9 years ago
Andrzej Kotulski a825831625 Model vector::resize(n) as nonempty vector 9 years ago
Dulma Churchill 5adab3cb61 Fix StmtExpr 9 years ago
Dulma Churchill 5ed970efa9 Fix the return stmt that would not be the last instruction in the path in some cases 9 years ago
Sam Blackshear fd8a864c15 doing preanalysis on-demand 9 years ago
Dulma Churchill 60d9a19ae0 Fix bucketing for variables passed by reference 9 years ago
Andrzej Kotulski 0f895b0684 Improve empty vector tests 9 years ago
Dulma Churchill bf9d194e43 Translate builtin_expect as its first argument. Avoids weird symb. exec. problems 9 years ago
Andrzej Kotulski 617ffab0ac Add @generated comment to icfg.dot files 9 years ago
Andrzej Kotulski 3699b9c0dc Fix translation of passing struct parameters by value 9 years ago
Dulma Churchill de615594df Skip whitelisted functions form trace 9 years ago
Andrzej Kotulski 8ccdff649f Report empty vector access instead of null dereference 9 years ago
Andrzej Kotulski 058f4455dc Modify model of std::vector 9 years ago
Andrzej Kotulski bfce6bac47 Model empty vector access 9 years ago
Dulma Churchill 6c7c18e920 Model other functions from glog library 9 years ago
Sam Blackshear 3f49f3a1d4 using liveness to add removetemps instructions 9 years ago
Sam Blackshear 20925df57c removing unused deallocate param in nullify instr 9 years ago
Sam Blackshear 4fd2f52fe8 new analysis for adding nullify's 9 years ago
Dulma Churchill c3fbd5af29 Model CHECK macro and fix the model for builtin_expect 9 years ago
Sam Blackshear 6f6da12b2c don't nullify params/locals at beginning of procedure 9 years ago
Andrzej Kotulski 05c218d84f Declare local variable for conditional in procdesc 9 years ago
Andrzej Kotulski 66d3d492f8 Fix translation of BinaryConditionalOperator 9 years ago
Dino Distefano b7ab1760a6 Translation of lambda [part one] 9 years ago
Cristiano Calcagno 054ad223a8 Fix control-flow graph shape when conditional is last instruction. 9 years ago
Dulma Rodriguez 6b2b76d956 Translate dynamic arrays to cpp classes 9 years ago
Andrzej Kotulski 590f73b59f Translate functions/methods from headers when they are referenced 9 years ago
Andrzej Kotulski 64bb3b62b3 Use variable stmt location info in init_res_trans 9 years ago
Dulma Rodriguez bc3134dd32 Translate initializing arrays of C++ classes 9 years ago
Dulma Rodriguez c0e5365458 Translate delete of arrays with the correct destructor 9 years ago
Dulma Rodriguez 0c5bca7a4b Translate arrays created with new 9 years ago
Dulma Rodriguez c6524d799f Translate C++ constructors after new 9 years ago
Andrzej Kotulski 675009a2ee Add unique_ptr model 9 years ago
Dulma Rodriguez 9f7bfea98f Translate CXXStdInitializerListExpr 9 years ago
Sam Blackshear 2991bd3fc3 using address-taken analysis for nullify placement rather than alias analysis 9 years ago
Andrzej Kotulski 0a32ff4400 Translate std::move from system headers to improve analysis quality 9 years ago
Dulma Rodriguez a62ccc7a05 Fixing init list expr when there is no variable or compound literal expression 9 years ago
Dulma Rodriguez 10a14a7324 Translate CXXTypeidExpr 9 years ago
Andrzej Kotulski eb76a441f9 Initial implementation of shared_ptr model 9 years ago
Dulma Rodriguez a4b87a0951 Translate destructor calls 9 years ago
Dulma Rodriguez 91a2eaa5f1 Translate CXXPseudoDestructorExpr 9 years ago
Dulma Rodriguez edbd7854b2 Translate SizeOfPackExpr 9 years ago
Dulma Rodriguez d499d5fc8e Translate C++ exceptions 9 years ago
Andrzej Kotulski decb263b1d Fix translation when accessing reference type fields 9 years ago
Dulma Rodriguez 06f40efab8 Add extra dereference to the variable of the method call to find null dereferences when a method called with null. 9 years ago
Andrzej Kotulski e4a0e9bbf7 Translate CXXDefaultInitExpr 9 years ago
Dulma Rodriguez 2fb2b3d9e1 Add the virtual flag of C++ methods in method calls 9 years ago
Andrzej Kotulski 4584f7f6fc [clang-format] Reformat all c/cpp/objc sources with clang-format 9 years ago
Andrzej Kotulski 50fc847c10 Compile C models again in C++ 9 years ago
Andrzej Kotulski f703d780da Translate headers located inside analyzed project 9 years ago
Andrzej Kotulski 3320043217 Fix further problems with forward declarations in C/C++ 9 years ago
Dulma Rodriguez bf90a64fb5 Fix the typing implication in the bi-abduction for non Java types 9 years ago
Andrzej Kotulski 8c832142b4 Don't add process type redeclaration unless it has definition 9 years ago
Dino Distefano c65947439f Implementing translation of CXXForRangeStmt 9 years ago
Andrzej Kotulski 49d7bdb6bd Translate CXXScalarValueInitExpr 9 years ago
Andrzej Kotulski 359ad9dd4b Translate constructor initializer 9 years ago
Andrzej Kotulski 7cabc86f77 Pass return parameter type in context 9 years ago
Andrzej Kotulski 8545a0310e Treat xvalues as they were lvalues 9 years ago