cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

boolreturn.cocci (698B)


      1// SPDX-License-Identifier: GPL-2.0
      2/// Return statements in functions returning bool should use
      3/// true/false instead of 1/0.
      4//
      5// Confidence: High
      6// Options: --no-includes --include-headers
      7
      8virtual patch
      9virtual report
     10virtual context
     11
     12@r1 depends on patch@
     13identifier fn;
     14typedef bool;
     15symbol false;
     16symbol true;
     17@@
     18
     19bool fn ( ... )
     20{
     21<...
     22return
     23(
     24- 0
     25+ false
     26|
     27- 1
     28+ true
     29)
     30  ;
     31...>
     32}
     33
     34@r2 depends on report || context@
     35identifier fn;
     36position p;
     37@@
     38
     39bool fn ( ... )
     40{
     41<...
     42return
     43(
     44* 0@p
     45|
     46* 1@p
     47)
     48  ;
     49...>
     50}
     51
     52
     53@script:python depends on report@
     54p << r2.p;
     55fn << r2.fn;
     56@@
     57
     58msg = "WARNING: return of 0/1 in function '%s' with return type bool" % fn
     59coccilib.report.print_report(p[0], msg)