Commit e77ad795 authored by George Kadianakis's avatar George Kadianakis
Browse files

Merge branch 'tor-github/pr/1322'

parents 99f75373 387cfcce
Loading
Loading
Loading
Loading

changes/ticket30743

0 → 100644
+7 −0
Original line number Diff line number Diff line
  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 −0
Original line number Diff line number Diff line
// 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++ ...+>, ... );