aboutsummaryrefslogtreecommitdiff
path: root/scripts/coccinelle
AgeCommit message (Collapse)Author
2019-12-20Makefile/git scripts: Add comments to keep owned file lists in syncteor
2019-12-05cocci: Require spatch >= 1.0.4 to run checksteor
No changes file required: not in any released version of tor. Fixes bug 32663.
2019-10-28scripts: Change to the top source directory as neededteor
Bugfix on 31919; not in any released version of tor.
2019-10-24scripts/cocci: Check owned src in check_cocci_parse.sh by defaultteor
Check the tor-owned sources in an 0.3.5 directory layout, if no files are provided on the command line. Part of 31919.
2019-10-24scripts/cocci: Add check_cocci_parse.sh and default exceptionsteor
Add check_cocci_parse.sh, which is a thin wrapper around try_parse.sh. Add a default exceptions file, and use it in check_cocci_parse.sh. Part of 31919.
2019-10-24scripts/cocci: Remove unused arguments from try_parse.sh spatchteor
Part of 31919.
2019-10-24scripts/cocci: Add an exceptions file to try_parse.shteor
Set $TOR_COCCI_EXCEPTIONS_FILE to the name of an exceptions file, containing a list of filename patterns matched by 'grep -f'. Part of 31919.
2019-10-22Merge branch 'ticket31705_v2' into ticket31705_v2_mergedNick Mathewson
Conflicts: src/feature/dirparse/authcert_parse.c src/feature/dirparse/ns_parse.c src/feature/hs/hs_service.c src/lib/conf/conftesting.h src/lib/log/log.h src/lib/thread/threads.h src/test/test_options.c These conflicts were mostly related to autostyle improvements, with one or two due to doxygen fixes.
2019-10-22confmacros.h: fix coccinelle parsing.Nick Mathewson
2019-10-22tor-coccinelle.h: add a definition for EXTERNNick Mathewson
2019-10-22tor-coccinelle.h: add HANDLE_{DECL,IMPL}Nick Mathewson
2019-10-22tor-coccinelle.h: add EAT_SEMICOLONNick Mathewson
2019-10-22tor-coccinelle.h: add CHECK_SCANFNick Mathewson
2019-10-22tor-coccinelle.h: add MOCK_DECLNick Mathewson
2019-10-22tor-coccinelle.h: handle SLIST and LIST.Nick Mathewson
2019-10-22Add a "COCCI" macro that we tell coccinelle is always defined.Nick Mathewson
This will let us give specific in-file equivalents to given macros or preprocessor directives, to make things parse.
2019-10-22tor-coccinelle.h: handle NS and NS_DECL.Nick Mathewson
2019-10-22tor-coccinelle: handle SIMPLEQ and TAILQ better.Nick Mathewson
2019-10-22tor-coccinelle.h: Add {EN,DIS}ABLE_GCC_WARNING.Nick Mathewson
2019-10-22tor-coccinelle: expect parentheses after HT_INITIALIZERNick Mathewson
2019-10-22try_parse.sh: add a verbose mode and a meaningful exit code.Nick Mathewson
2019-10-22document test-operator-cleanupNick Mathewson
2019-10-09Document tor-coccinelle.hNick Mathewson
2019-09-18Add a coccinelle script to look for {inc,dec}rements in log_debugNick Mathewson
We want to forbid this pattern since, unlike the other log_*() macros, log_debug() conditionally evaluates its arguments only if debug-level logging is enabled. Thus, a call to log_debug("%d", x++); will only increment x if debugging logs are enabled, which is probably not what the programmer intended. One bug caused by this pattern was #30628. This script detects log_debug( ) calls with any of E++, E--, ++E, or --E in their arguments, where E is an arbitrary expression. Closes ticket 30743.
2019-09-11Add some more of our trickier macros to tor-coccinelle.hNick Mathewson
Note that this header file behaves a bit strangely. It is used by coccinelle just for the purpose of knowing how to parse difficult-to-parse stuff. It doesn't need to produce good C -- just grammatical C.
2019-09-11Add a script to tell whether a file can be perfectly parsed by spatchNick Mathewson
spatch can let us know whether a file has parsed "perfectly" or not. The more perfect it parses, the likelier any semantic patches are to apply. I've used this script to identify problem areas in our code.
2019-09-11Add a script to run spatch with appropriate argumentsNick Mathewson
It's a bit tricky to remember the right incantation to get the proper include paths and incantations for coccinelle, but without it, coccinelle is less effective at parsing our C.
2019-04-30Coccinelle scripts for control.c refactorTaylor Yu
2017-08-24Add Coccinelle patch for replacing NULL/non-NULL tt_assert().Alexander Færøy
This patch replaces tt_assert() checks for NULL/non-NULL values with tt_ptr_op().
2017-08-24Add Coccinelle patch for replacing tt_assert() usage on integer types.Alexander Færøy
This patch replaces tt_assert() comparison of integers and unsigned integers with their respective tt_int_op or tt_uint_op counterpart.
2017-08-24Add Coccinelle patch for replacing tt_assert(0) with tt_abort().Alexander Færøy
2017-08-24Add Coccinelle patch for detecing places where CEIL_DIV should be used.Alexander Færøy
2017-08-24Add script for cleaning op operator usage in test files.Alexander Færøy
This patch adds a script written by Nick for bug #13172 to clean up the usage of ==, !=, <, >, <=, and >= by replacing them with their symbolic OP_* counterpart. This will ensure that a tool like Coccinelle doesn't get confused and silently ignore large blocks of code.
2014-11-02Add a rule to the calloc semantic patch for argument ordering.Mansour Moufid
2014-11-02The second argument to tor_calloc should be a constant.Mansour Moufid
Just like the conventional calloc.
2014-11-02Refactor the calloc semantic patch.Mansour Moufid
This does not change its effects.
2014-09-16Add coccinelle script to remove pointless callocsNick Mathewson
2014-09-16Add script to detect and remove unCish malloc-then-cast patternNick Mathewson
Also, apply it.
2014-08-13Add a simple coccinelle script to replace malloc->callocNick Mathewson
Coccinelle is a semantic patching tool that can automatically change C code via semantic patching. This script also replaces realloc with reallocarray as appropriate.