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

noderef.cocci (1219B)


      1// SPDX-License-Identifier: GPL-2.0-only
      2/// sizeof when applied to a pointer typed expression gives the size of
      3/// the pointer
      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
     15virtual patch
     16
     17@depends on patch@
     18expression *x;
     19expression f;
     20expression i;
     21type T;
     22@@
     23
     24(
     25x = <+... sizeof(
     26- x
     27+ *x
     28   ) ...+>
     29|
     30f(...,(T)(x),...,sizeof(
     31- x
     32+ *x
     33   ),...)
     34|
     35f(...,sizeof(
     36- x
     37+ *x
     38   ),...,(T)(x),...)
     39|
     40f(...,(T)(x),...,i*sizeof(
     41- x
     42+ *x
     43   ),...)
     44|
     45f(...,i*sizeof(
     46- x
     47+ *x
     48   ),...,(T)(x),...)
     49)
     50
     51@r depends on !patch@
     52expression *x;
     53expression f;
     54expression i;
     55position p;
     56type T;
     57@@
     58
     59(
     60*x = <+... sizeof@p(x) ...+>
     61|
     62*f(...,(T)(x),...,sizeof@p(x),...)
     63|
     64*f(...,sizeof@p(x),...,(T)(x),...)
     65|
     66*f(...,(T)(x),...,i*sizeof@p(x),...)
     67|
     68*f(...,i*sizeof@p(x),...,(T)(x),...)
     69)
     70
     71@script:python depends on org@
     72p << r.p;
     73@@
     74
     75cocci.print_main("application of sizeof to pointer",p)
     76
     77@script:python depends on report@
     78p << r.p;
     79@@
     80
     81msg = "ERROR: application of sizeof to pointer"
     82coccilib.report.print_report(p[0],msg)