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

cstptr.cocci (852B)


      1// SPDX-License-Identifier: GPL-2.0-only
      2/// PTR_ERR should be applied before its argument is reassigned, typically
      3/// to NULL
      4///
      5// Confidence: High
      6// Copyright: (C) 2012 Julia Lawall, INRIA/LIP6.
      7// Copyright: (C) 2012 Gilles Muller, INRIA/LiP6.
      8// URL: http://coccinelle.lip6.fr/
      9// Comments:
     10// Options: --no-includes --include-headers
     11
     12virtual org
     13virtual report
     14virtual context
     15
     16@r exists@
     17expression e,e1;
     18constant c;
     19position p1,p2;
     20@@
     21
     22*e@p1 = c
     23... when != e = e1
     24    when != &e
     25    when != true IS_ERR(e)
     26*PTR_ERR@p2(e)
     27
     28@script:python depends on org@
     29p1 << r.p1;
     30p2 << r.p2;
     31@@
     32
     33cocci.print_main("PTR_ERR",p2)
     34cocci.print_secs("assignment",p1)
     35
     36@script:python depends on report@
     37p1 << r.p1;
     38p2 << r.p2;
     39@@
     40
     41msg = "ERROR: PTR_ERR applied after initialization to constant on line %s" % (p1[0].line)
     42coccilib.report.print_report(p2[0],msg)