Merge branch 'tor-github/pr/1322'

This commit is contained in:
George Kadianakis
2019-09-25 14:13:44 +03:00
2 changed files with 36 additions and 0 deletions
+7
View File
@@ -0,0 +1,7 @@
o Minor features (maintenance scripts):
- Add a coccinelle script to detect bugs caused by incrementing or
decrementing a variable inside a call to log_debug(). Since
log_debug() is a macro whose arguments are conditionally evaluated, it
is usually an error to do this. One such bug was 30628, in which SENDME
cells were miscounted by a decrement operator inside a log_debug()
call. Closes ticket 30743.
+29
View File
@@ -0,0 +1,29 @@
// Look for use of expressions with side-effects inside of debug logs.
//
// This script detects expressions like ++E, --E, E++, and E-- inside of
// calls to log_debug().
//
// The log_debug() macro exits early if debug logging is not enabled,
// potentially causing problems if its arguments have side-effects.
@@
expression E;
@@
*log_debug(... , <+... --E ...+>, ... );
@@
expression E;
@@
*log_debug(... , <+... ++E ...+>, ... );
@@
expression E;
@@
*log_debug(... , <+... E-- ...+>, ... );
@@
expression E;
@@
*log_debug(... , <+... E++ ...+>, ... );