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

newline_in_nl_msg.cocci (1650B)


      1// SPDX-License-Identifier: GPL-2.0-only
      2///
      3/// Catch strings ending in newline with GENL_SET_ERR_MSG, NL_SET_ERR_MSG,
      4/// NL_SET_ERR_MSG_MOD.
      5///
      6// Confidence: Very High
      7// Copyright: (C) 2020 Intel Corporation
      8// URL: http://coccinelle.lip6.fr/
      9// Options: --no-includes --include-headers
     10
     11virtual context
     12virtual org
     13virtual report
     14
     15@r depends on context || org || report@
     16expression e;
     17constant m;
     18position p;
     19@@
     20  \(GENL_SET_ERR_MSG\|NL_SET_ERR_MSG\|NL_SET_ERR_MSG_MOD\)(e,m@p)
     21
     22@script:python@
     23m << r.m;
     24@@
     25
     26if not m.endswith("\\n\""):
     27	cocci.include_match(False)
     28
     29@r1 depends on r@
     30identifier fname;
     31expression r.e;
     32constant r.m;
     33position r.p;
     34@@
     35  fname(e,m@p)
     36
     37//----------------------------------------------------------
     38//  For context mode
     39//----------------------------------------------------------
     40
     41@depends on context && r@
     42identifier r1.fname;
     43expression r.e;
     44constant r.m;
     45@@
     46* fname(e,m)
     47
     48//----------------------------------------------------------
     49//  For org mode
     50//----------------------------------------------------------
     51
     52@script:python depends on org@
     53fname << r1.fname;
     54m << r.m;
     55p << r.p;
     56@@
     57
     58if m.endswith("\\n\""):
     59	msg="WARNING avoid newline at end of message in %s" % (fname)
     60	msg_safe=msg.replace("[","@(").replace("]",")")
     61	coccilib.org.print_todo(p[0], msg_safe)
     62
     63//----------------------------------------------------------
     64//  For report mode
     65//----------------------------------------------------------
     66
     67@script:python depends on report@
     68fname << r1.fname;
     69m << r.m;
     70p << r.p;
     71@@
     72
     73if m.endswith("\\n\""):
     74	msg="WARNING avoid newline at end of message in %s" % (fname)
     75	coccilib.report.print_report(p[0], msg)