summaryrefslogtreecommitdiff
path: root/ANDROID_3.4.5/scripts/coccinelle
diff options
context:
space:
mode:
Diffstat (limited to 'ANDROID_3.4.5/scripts/coccinelle')
-rw-r--r--ANDROID_3.4.5/scripts/coccinelle/api/alloc/drop_kmalloc_cast.cocci67
-rw-r--r--ANDROID_3.4.5/scripts/coccinelle/api/alloc/kzalloc-simple.cocci86
-rw-r--r--ANDROID_3.4.5/scripts/coccinelle/api/devm_request_and_ioremap.cocci105
-rw-r--r--ANDROID_3.4.5/scripts/coccinelle/api/err_cast.cocci56
-rw-r--r--ANDROID_3.4.5/scripts/coccinelle/api/kstrdup.cocci104
-rw-r--r--ANDROID_3.4.5/scripts/coccinelle/api/memdup.cocci66
-rw-r--r--ANDROID_3.4.5/scripts/coccinelle/api/memdup_user.cocci60
-rw-r--r--ANDROID_3.4.5/scripts/coccinelle/api/ptr_ret.cocci70
-rw-r--r--ANDROID_3.4.5/scripts/coccinelle/api/resource_size.cocci93
-rw-r--r--ANDROID_3.4.5/scripts/coccinelle/api/simple_open.cocci70
-rw-r--r--ANDROID_3.4.5/scripts/coccinelle/free/clk_put.cocci67
-rw-r--r--ANDROID_3.4.5/scripts/coccinelle/free/devm_free.cocci71
-rw-r--r--ANDROID_3.4.5/scripts/coccinelle/free/iounmap.cocci67
-rw-r--r--ANDROID_3.4.5/scripts/coccinelle/free/kfree.cocci121
-rw-r--r--ANDROID_3.4.5/scripts/coccinelle/iterators/fen.cocci123
-rw-r--r--ANDROID_3.4.5/scripts/coccinelle/iterators/itnull.cocci94
-rw-r--r--ANDROID_3.4.5/scripts/coccinelle/iterators/list_entry_update.cocci62
-rw-r--r--ANDROID_3.4.5/scripts/coccinelle/locks/call_kern.cocci105
-rw-r--r--ANDROID_3.4.5/scripts/coccinelle/locks/double_lock.cocci92
-rw-r--r--ANDROID_3.4.5/scripts/coccinelle/locks/flags.cocci80
-rw-r--r--ANDROID_3.4.5/scripts/coccinelle/locks/mini_lock.cocci96
-rw-r--r--ANDROID_3.4.5/scripts/coccinelle/misc/boolinit.cocci178
-rw-r--r--ANDROID_3.4.5/scripts/coccinelle/misc/cstptr.cocci41
-rw-r--r--ANDROID_3.4.5/scripts/coccinelle/misc/doubleinit.cocci53
-rw-r--r--ANDROID_3.4.5/scripts/coccinelle/misc/ifcol.cocci48
-rw-r--r--ANDROID_3.4.5/scripts/coccinelle/null/badzero.cocci237
-rw-r--r--ANDROID_3.4.5/scripts/coccinelle/null/deref_null.cocci282
-rw-r--r--ANDROID_3.4.5/scripts/coccinelle/null/eno.cocci48
-rw-r--r--ANDROID_3.4.5/scripts/coccinelle/null/kmerr.cocci72
-rw-r--r--ANDROID_3.4.5/scripts/coccinelle/tests/doublebitand.cocci54
-rw-r--r--ANDROID_3.4.5/scripts/coccinelle/tests/doubletest.cocci40
31 files changed, 0 insertions, 2808 deletions
diff --git a/ANDROID_3.4.5/scripts/coccinelle/api/alloc/drop_kmalloc_cast.cocci b/ANDROID_3.4.5/scripts/coccinelle/api/alloc/drop_kmalloc_cast.cocci
deleted file mode 100644
index 7d4771d4..00000000
--- a/ANDROID_3.4.5/scripts/coccinelle/api/alloc/drop_kmalloc_cast.cocci
+++ /dev/null
@@ -1,67 +0,0 @@
-///
-/// Casting (void *) value returned by kmalloc is useless
-/// as mentioned in Documentation/CodingStyle, Chap 14.
-///
-// Confidence: High
-// Copyright: 2009,2010 Nicolas Palix, DIKU. GPLv2.
-// URL: http://coccinelle.lip6.fr/
-// Options: -no_includes -include_headers
-//
-// Keywords: kmalloc, kzalloc, kcalloc
-// Version min: < 2.6.12 kmalloc
-// Version min: < 2.6.12 kcalloc
-// Version min: 2.6.14 kzalloc
-//
-
-virtual context
-virtual patch
-virtual org
-virtual report
-
-//----------------------------------------------------------
-// For context mode
-//----------------------------------------------------------
-
-@depends on context@
-type T;
-@@
-
-* (T *)
- \(kmalloc\|kzalloc\|kcalloc\)(...)
-
-//----------------------------------------------------------
-// For patch mode
-//----------------------------------------------------------
-
-@depends on patch@
-type T;
-@@
-
-- (T *)
- \(kmalloc\|kzalloc\|kcalloc\)(...)
-
-//----------------------------------------------------------
-// For org and report mode
-//----------------------------------------------------------
-
-@r depends on org || report@
-type T;
-position p;
-@@
-
- (T@p *)\(kmalloc\|kzalloc\|kcalloc\)(...)
-
-@script:python depends on org@
-p << r.p;
-t << r.T;
-@@
-
-coccilib.org.print_safe_todo(p[0], t)
-
-@script:python depends on report@
-p << r.p;
-t << r.T;
-@@
-
-msg="WARNING: casting value returned by k[cmz]alloc to (%s *) is useless." % (t)
-coccilib.report.print_report(p[0], msg)
diff --git a/ANDROID_3.4.5/scripts/coccinelle/api/alloc/kzalloc-simple.cocci b/ANDROID_3.4.5/scripts/coccinelle/api/alloc/kzalloc-simple.cocci
deleted file mode 100644
index 046b9b16..00000000
--- a/ANDROID_3.4.5/scripts/coccinelle/api/alloc/kzalloc-simple.cocci
+++ /dev/null
@@ -1,86 +0,0 @@
-///
-/// Use kzalloc rather than kmalloc followed by memset with 0
-///
-/// This considers some simple cases that are common and easy to validate
-/// Note in particular that there are no ...s in the rule, so all of the
-/// matched code has to be contiguous
-///
-// Confidence: High
-// Copyright: (C) 2009-2010 Julia Lawall, Nicolas Palix, DIKU. GPLv2.
-// Copyright: (C) 2009-2010 Gilles Muller, INRIA/LiP6. GPLv2.
-// URL: http://coccinelle.lip6.fr/rules/kzalloc.html
-// Options: -no_includes -include_headers
-//
-// Keywords: kmalloc, kzalloc
-// Version min: < 2.6.12 kmalloc
-// Version min: 2.6.14 kzalloc
-//
-
-virtual context
-virtual patch
-virtual org
-virtual report
-
-//----------------------------------------------------------
-// For context mode
-//----------------------------------------------------------
-
-@depends on context@
-type T, T2;
-expression x;
-expression E1,E2;
-statement S;
-@@
-
-* x = (T)kmalloc(E1,E2);
- if ((x==NULL) || ...) S
-* memset((T2)x,0,E1);
-
-//----------------------------------------------------------
-// For patch mode
-//----------------------------------------------------------
-
-@depends on patch@
-type T, T2;
-expression x;
-expression E1,E2;
-statement S;
-@@
-
-- x = (T)kmalloc(E1,E2);
-+ x = kzalloc(E1,E2);
- if ((x==NULL) || ...) S
-- memset((T2)x,0,E1);
-
-//----------------------------------------------------------
-// For org mode
-//----------------------------------------------------------
-
-@r depends on org || report@
-type T, T2;
-expression x;
-expression E1,E2;
-statement S;
-position p;
-@@
-
- x = (T)kmalloc@p(E1,E2);
- if ((x==NULL) || ...) S
- memset((T2)x,0,E1);
-
-@script:python depends on org@
-p << r.p;
-x << r.x;
-@@
-
-msg="%s" % (x)
-msg_safe=msg.replace("[","@(").replace("]",")")
-coccilib.org.print_todo(p[0], msg_safe)
-
-@script:python depends on report@
-p << r.p;
-x << r.x;
-@@
-
-msg="WARNING: kzalloc should be used for %s, instead of kmalloc/memset" % (x)
-coccilib.report.print_report(p[0], msg)
diff --git a/ANDROID_3.4.5/scripts/coccinelle/api/devm_request_and_ioremap.cocci b/ANDROID_3.4.5/scripts/coccinelle/api/devm_request_and_ioremap.cocci
deleted file mode 100644
index 46beb814..00000000
--- a/ANDROID_3.4.5/scripts/coccinelle/api/devm_request_and_ioremap.cocci
+++ /dev/null
@@ -1,105 +0,0 @@
-/// Reimplement a call to devm_request_mem_region followed by a call to ioremap
-/// or ioremap_nocache by a call to devm_request_and_ioremap.
-/// Devm_request_and_ioremap was introduced in
-/// 72f8c0bfa0de64c68ee59f40eb9b2683bffffbb0. It makes the code much more
-/// concise.
-///
-///
-// Confidence: High
-// Copyright: (C) 2011 Julia Lawall, INRIA/LIP6. GPLv2.
-// Copyright: (C) 2011 Gilles Muller, INRIA/LiP6. GPLv2.
-// URL: http://coccinelle.lip6.fr/
-// Comments:
-// Options: -no_includes -include_headers
-
-virtual patch
-virtual org
-virtual report
-virtual context
-
-@nm@
-expression myname;
-identifier i;
-@@
-
-struct platform_driver i = { .driver = { .name = myname } };
-
-@depends on patch@
-expression dev,res,size;
-@@
-
--if (!devm_request_mem_region(dev, res->start, size,
-- \(res->name\|dev_name(dev)\))) {
-- ...
-- return ...;
--}
-... when != res->start
-(
--devm_ioremap(dev,res->start,size)
-+devm_request_and_ioremap(dev,res)
-|
--devm_ioremap_nocache(dev,res->start,size)
-+devm_request_and_ioremap(dev,res)
-)
-... when any
- when != res->start
-
-// this rule is separate from the previous one, because a single file can
-// have multiple values of myname
-@depends on patch@
-expression dev,res,size;
-expression nm.myname;
-@@
-
--if (!devm_request_mem_region(dev, res->start, size,myname)) {
-- ...
-- return ...;
--}
-... when != res->start
-(
--devm_ioremap(dev,res->start,size)
-+devm_request_and_ioremap(dev,res)
-|
--devm_ioremap_nocache(dev,res->start,size)
-+devm_request_and_ioremap(dev,res)
-)
-... when any
- when != res->start
-
-
-@pb depends on org || report || context@
-expression dev,res,size;
-expression nm.myname;
-position p1,p2;
-@@
-
-*if
- (!devm_request_mem_region@p1(dev, res->start, size,
- \(res->name\|dev_name(dev)\|myname\))) {
- ...
- return ...;
-}
-... when != res->start
-(
-*devm_ioremap@p2(dev,res->start,size)
-|
-*devm_ioremap_nocache@p2(dev,res->start,size)
-)
-... when any
- when != res->start
-
-@script:python depends on org@
-p1 << pb.p1;
-p2 << pb.p2;
-@@
-
-cocci.print_main("INFO: replace by devm_request_and_ioremap",p1)
-cocci.print_secs("",p2)
-
-@script:python depends on report@
-p1 << pb.p1;
-p2 << pb.p2;
-@@
-
-msg = "INFO: devm_request_mem_region followed by ioremap on line %s can be replaced by devm_request_and_ioremap" % (p2[0].line)
-coccilib.report.print_report(p1[0],msg)
diff --git a/ANDROID_3.4.5/scripts/coccinelle/api/err_cast.cocci b/ANDROID_3.4.5/scripts/coccinelle/api/err_cast.cocci
deleted file mode 100644
index 2ce11500..00000000
--- a/ANDROID_3.4.5/scripts/coccinelle/api/err_cast.cocci
+++ /dev/null
@@ -1,56 +0,0 @@
-///
-/// Use ERR_CAST inlined function instead of ERR_PTR(PTR_ERR(...))
-///
-// Confidence: High
-// Copyright: (C) 2009, 2010 Nicolas Palix, DIKU. GPLv2.
-// Copyright: (C) 2009, 2010 Julia Lawall, DIKU. GPLv2.
-// Copyright: (C) 2009, 2010 Gilles Muller, INRIA/LiP6. GPLv2.
-// URL: http://coccinelle.lip6.fr/
-// Options:
-//
-// Keywords: ERR_PTR, PTR_ERR, ERR_CAST
-// Version min: 2.6.25
-//
-
-virtual context
-virtual patch
-virtual org
-virtual report
-
-
-@ depends on context && !patch && !org && !report@
-expression x;
-@@
-
-* ERR_PTR(PTR_ERR(x))
-
-@ depends on !context && patch && !org && !report @
-expression x;
-@@
-
-- ERR_PTR(PTR_ERR(x))
-+ ERR_CAST(x)
-
-@r depends on !context && !patch && (org || report)@
-expression x;
-position p;
-@@
-
- ERR_PTR@p(PTR_ERR(x))
-
-@script:python depends on org@
-p << r.p;
-x << r.x;
-@@
-
-msg="WARNING ERR_CAST can be used with %s" % (x)
-msg_safe=msg.replace("[","@(").replace("]",")")
-coccilib.org.print_todo(p[0], msg_safe)
-
-@script:python depends on report@
-p << r.p;
-x << r.x;
-@@
-
-msg="WARNING: ERR_CAST can be used with %s" % (x)
-coccilib.report.print_report(p[0], msg)
diff --git a/ANDROID_3.4.5/scripts/coccinelle/api/kstrdup.cocci b/ANDROID_3.4.5/scripts/coccinelle/api/kstrdup.cocci
deleted file mode 100644
index 07a74b2c..00000000
--- a/ANDROID_3.4.5/scripts/coccinelle/api/kstrdup.cocci
+++ /dev/null
@@ -1,104 +0,0 @@
-/// Use kstrdup rather than duplicating its implementation
-///
-// Confidence: High
-// Copyright: (C) 2010-2012 Nicolas Palix. GPLv2.
-// Copyright: (C) 2010-2012 Julia Lawall, INRIA/LIP6. GPLv2.
-// Copyright: (C) 2010-2012 Gilles Muller, INRIA/LiP6. GPLv2.
-// URL: http://coccinelle.lip6.fr/
-// Comments:
-// Options: -no_includes -include_headers
-
-virtual patch
-virtual context
-virtual org
-virtual report
-
-@depends on patch@
-expression from,to;
-expression flag,E1,E2;
-statement S;
-@@
-
-- to = kmalloc(strlen(from) + 1,flag);
-+ to = kstrdup(from, flag);
- ... when != \(from = E1 \| to = E1 \)
- if (to==NULL || ...) S
- ... when != \(from = E2 \| to = E2 \)
-- strcpy(to, from);
-
-@depends on patch@
-expression x,from,to;
-expression flag,E1,E2,E3;
-statement S;
-@@
-
-- x = strlen(from) + 1;
- ... when != \( x = E1 \| from = E1 \)
-- to = \(kmalloc\|kzalloc\)(x,flag);
-+ to = kstrdup(from, flag);
- ... when != \(x = E2 \| from = E2 \| to = E2 \)
- if (to==NULL || ...) S
- ... when != \(x = E3 \| from = E3 \| to = E3 \)
-- memcpy(to, from, x);
-
-// ---------------------------------------------------------------------
-
-@r1 depends on !patch exists@
-expression from,to;
-expression flag,E1,E2;
-statement S;
-position p1,p2;
-@@
-
-* to = kmalloc@p1(strlen(from) + 1,flag);
- ... when != \(from = E1 \| to = E1 \)
- if (to==NULL || ...) S
- ... when != \(from = E2 \| to = E2 \)
-* strcpy@p2(to, from);
-
-@r2 depends on !patch exists@
-expression x,from,to;
-expression flag,E1,E2,E3;
-statement S;
-position p1,p2;
-@@
-
-* x = strlen(from) + 1;
- ... when != \( x = E1 \| from = E1 \)
-* to = \(kmalloc@p1\|kzalloc@p2\)(x,flag);
- ... when != \(x = E2 \| from = E2 \| to = E2 \)
- if (to==NULL || ...) S
- ... when != \(x = E3 \| from = E3 \| to = E3 \)
-* memcpy@p2(to, from, x);
-
-@script:python depends on org@
-p1 << r1.p1;
-p2 << r1.p2;
-@@
-
-cocci.print_main("WARNING opportunity for kstrdep",p1)
-cocci.print_secs("strcpy",p2)
-
-@script:python depends on org@
-p1 << r2.p1;
-p2 << r2.p2;
-@@
-
-cocci.print_main("WARNING opportunity for kstrdep",p1)
-cocci.print_secs("memcpy",p2)
-
-@script:python depends on report@
-p1 << r1.p1;
-p2 << r1.p2;
-@@
-
-msg = "WARNING opportunity for kstrdep (strcpy on line %s)" % (p2[0].line)
-coccilib.report.print_report(p1[0], msg)
-
-@script:python depends on report@
-p1 << r2.p1;
-p2 << r2.p2;
-@@
-
-msg = "WARNING opportunity for kstrdep (memcpy on line %s)" % (p2[0].line)
-coccilib.report.print_report(p1[0], msg)
diff --git a/ANDROID_3.4.5/scripts/coccinelle/api/memdup.cocci b/ANDROID_3.4.5/scripts/coccinelle/api/memdup.cocci
deleted file mode 100644
index 4dceab6d..00000000
--- a/ANDROID_3.4.5/scripts/coccinelle/api/memdup.cocci
+++ /dev/null
@@ -1,66 +0,0 @@
-/// Use kmemdup rather than duplicating its implementation
-///
-// Confidence: High
-// Copyright: (C) 2010-2012 Nicolas Palix. GPLv2.
-// Copyright: (C) 2010-2012 Julia Lawall, INRIA/LIP6. GPLv2.
-// Copyright: (C) 2010-2012 Gilles Muller, INRIA/LiP6. GPLv2.
-// URL: http://coccinelle.lip6.fr/
-// Comments:
-// Options: -no_includes -include_headers
-
-virtual patch
-virtual context
-virtual org
-virtual report
-
-@r1@
-expression from,to;
-expression flag;
-position p;
-@@
-
- to = \(kmalloc@p\|kzalloc@p\)(strlen(from) + 1,flag);
-
-@r2@
-expression x,from,to;
-expression flag,E1;
-position p;
-@@
-
- x = strlen(from) + 1;
- ... when != \( x = E1 \| from = E1 \)
- to = \(kmalloc@p\|kzalloc@p\)(x,flag);
-
-@depends on patch@
-expression from,to,size,flag;
-position p != {r1.p,r2.p};
-statement S;
-@@
-
-- to = \(kmalloc@p\|kzalloc@p\)(size,flag);
-+ to = kmemdup(from,size,flag);
- if (to==NULL || ...) S
-- memcpy(to, from, size);
-
-@r depends on !patch@
-expression from,to,size,flag;
-position p != {r1.p,r2.p};
-statement S;
-@@
-
-* to = \(kmalloc@p\|kzalloc@p\)(size,flag);
- to = kmemdup(from,size,flag);
- if (to==NULL || ...) S
-* memcpy(to, from, size);
-
-@script:python depends on org@
-p << r.p;
-@@
-
-coccilib.org.print_todo(p[0], "WARNING opportunity for kmemdep")
-
-@script:python depends on report@
-p << r.p;
-@@
-
-coccilib.report.print_report(p[0], "WARNING opportunity for kmemdep")
diff --git a/ANDROID_3.4.5/scripts/coccinelle/api/memdup_user.cocci b/ANDROID_3.4.5/scripts/coccinelle/api/memdup_user.cocci
deleted file mode 100644
index 2efac289..00000000
--- a/ANDROID_3.4.5/scripts/coccinelle/api/memdup_user.cocci
+++ /dev/null
@@ -1,60 +0,0 @@
-/// Use memdup_user rather than duplicating its implementation
-/// This is a little bit restricted to reduce false positives
-///
-// Confidence: High
-// Copyright: (C) 2010-2012 Nicolas Palix. GPLv2.
-// Copyright: (C) 2010-2012 Julia Lawall, INRIA/LIP6. GPLv2.
-// Copyright: (C) 2010-2012 Gilles Muller, INRIA/LiP6. GPLv2.
-// URL: http://coccinelle.lip6.fr/
-// Comments:
-// Options: -no_includes -include_headers
-
-virtual patch
-virtual context
-virtual org
-virtual report
-
-@depends on patch@
-expression from,to,size,flag;
-identifier l1,l2;
-@@
-
-- to = \(kmalloc\|kzalloc\)(size,flag);
-+ to = memdup_user(from,size);
- if (
-- to==NULL
-+ IS_ERR(to)
- || ...) {
- <+... when != goto l1;
-- -ENOMEM
-+ PTR_ERR(to)
- ...+>
- }
-- if (copy_from_user(to, from, size) != 0) {
-- <+... when != goto l2;
-- -EFAULT
-- ...+>
-- }
-
-@r depends on !patch@
-expression from,to,size,flag;
-position p;
-statement S1,S2;
-@@
-
-* to = \(kmalloc@p\|kzalloc@p\)(size,flag);
- if (to==NULL || ...) S1
- if (copy_from_user(to, from, size) != 0)
- S2
-
-@script:python depends on org@
-p << r.p;
-@@
-
-coccilib.org.print_todo(p[0], "WARNING opportunity for memdep_user")
-
-@script:python depends on report@
-p << r.p;
-@@
-
-coccilib.report.print_report(p[0], "WARNING opportunity for memdep_user")
diff --git a/ANDROID_3.4.5/scripts/coccinelle/api/ptr_ret.cocci b/ANDROID_3.4.5/scripts/coccinelle/api/ptr_ret.cocci
deleted file mode 100644
index cbfd08c7..00000000
--- a/ANDROID_3.4.5/scripts/coccinelle/api/ptr_ret.cocci
+++ /dev/null
@@ -1,70 +0,0 @@
-///
-/// Use PTR_RET rather than if(IS_ERR(...)) + PTR_ERR
-///
-// Confidence: High
-// Copyright: (C) 2012 Julia Lawall, INRIA/LIP6. GPLv2.
-// Copyright: (C) 2012 Gilles Muller, INRIA/LiP6. GPLv2.
-// URL: http://coccinelle.lip6.fr/
-// Options: -no_includes -include_headers
-//
-// Keywords: ERR_PTR, PTR_ERR, PTR_RET
-// Version min: 2.6.39
-//
-
-virtual context
-virtual patch
-virtual org
-virtual report
-
-@depends on patch@
-expression ptr;
-@@
-
-- if (IS_ERR(ptr)) return PTR_ERR(ptr); else return 0;
-+ return PTR_RET(ptr);
-
-@depends on patch@
-expression ptr;
-@@
-
-- if (IS_ERR(ptr)) return PTR_ERR(ptr); return 0;
-+ return PTR_RET(ptr);
-
-@r1 depends on !patch@
-expression ptr;
-position p1;
-@@
-
-* if@p1 (IS_ERR(ptr)) return PTR_ERR(ptr); else return 0;
-
-@r2 depends on !patch@
-expression ptr;
-position p2;
-@@
-
-* if@p2 (IS_ERR(ptr)) return PTR_ERR(ptr); return 0;
-
-@script:python depends on org@
-p << r1.p1;
-@@
-
-coccilib.org.print_todo(p[0], "WARNING: PTR_RET can be used")
-
-
-@script:python depends on org@
-p << r2.p2;
-@@
-
-coccilib.org.print_todo(p[0], "WARNING: PTR_RET can be used")
-
-@script:python depends on report@
-p << r1.p1;
-@@
-
-coccilib.report.print_report(p[0], "WARNING: PTR_RET can be used")
-
-@script:python depends on report@
-p << r2.p2;
-@@
-
-coccilib.report.print_report(p[0], "WARNING: PTR_RET can be used")
diff --git a/ANDROID_3.4.5/scripts/coccinelle/api/resource_size.cocci b/ANDROID_3.4.5/scripts/coccinelle/api/resource_size.cocci
deleted file mode 100644
index 1935a58b..00000000
--- a/ANDROID_3.4.5/scripts/coccinelle/api/resource_size.cocci
+++ /dev/null
@@ -1,93 +0,0 @@
-///
-/// Use resource_size function on resource object
-/// instead of explicit computation.
-///
-// Confidence: High
-// Copyright: (C) 2009, 2010 Nicolas Palix, DIKU. GPLv2.
-// Copyright: (C) 2009, 2010 Julia Lawall, DIKU. GPLv2.
-// Copyright: (C) 2009, 2010 Gilles Muller, INRIA/LiP6. GPLv2.
-// URL: http://coccinelle.lip6.fr/
-// Options:
-//
-// Keywords: resource_size
-// Version min: 2.6.27 resource_size
-//
-
-virtual context
-virtual patch
-virtual org
-virtual report
-
-//----------------------------------------------------------
-// For context mode
-//----------------------------------------------------------
-
-@r_context depends on context && !patch && !org@
-struct resource *res;
-@@
-
-* (res->end - res->start) + 1
-
-//----------------------------------------------------------
-// For patch mode
-//----------------------------------------------------------
-
-@r_patch depends on !context && patch && !org@
-struct resource *res;
-@@
-
-- (res->end - res->start) + 1
-+ resource_size(res)
-
-//----------------------------------------------------------
-// For org mode
-//----------------------------------------------------------
-
-
-@r_org depends on !context && !patch && (org || report)@
-struct resource *res;
-position p;
-@@
-
- (res->end@p - res->start) + 1
-
-@rbad_org depends on !context && !patch && (org || report)@
-struct resource *res;
-position p != r_org.p;
-@@
-
- res->end@p - res->start
-
-@script:python depends on org@
-p << r_org.p;
-x << r_org.res;
-@@
-
-msg="ERROR with %s" % (x)
-msg_safe=msg.replace("[","@(").replace("]",")")
-coccilib.org.print_todo(p[0], msg_safe)
-
-@script:python depends on report@
-p << r_org.p;
-x << r_org.res;
-@@
-
-msg="ERROR: Missing resource_size with %s" % (x)
-coccilib.report.print_report(p[0], msg)
-
-@script:python depends on org@
-p << rbad_org.p;
-x << rbad_org.res;
-@@
-
-msg="WARNING with %s" % (x)
-msg_safe=msg.replace("[","@(").replace("]",")")
-coccilib.org.print_todo(p[0], msg_safe)
-
-@script:python depends on report@
-p << rbad_org.p;
-x << rbad_org.res;
-@@
-
-msg="WARNING: Suspicious code. resource_size is maybe missing with %s" % (x)
-coccilib.report.print_report(p[0], msg)
diff --git a/ANDROID_3.4.5/scripts/coccinelle/api/simple_open.cocci b/ANDROID_3.4.5/scripts/coccinelle/api/simple_open.cocci
deleted file mode 100644
index 05962f7b..00000000
--- a/ANDROID_3.4.5/scripts/coccinelle/api/simple_open.cocci
+++ /dev/null
@@ -1,70 +0,0 @@
-/// This removes an open coded simple_open() function
-/// and replaces file operations references to the function
-/// with simple_open() instead.
-///
-// Confidence: High
-// Comments:
-// Options: -no_includes -include_headers
-
-virtual patch
-virtual report
-
-@ open depends on patch @
-identifier open_f != simple_open;
-identifier i, f;
-@@
--int open_f(struct inode *i, struct file *f)
--{
-(
--if (i->i_private)
--f->private_data = i->i_private;
-|
--f->private_data = i->i_private;
-)
--return 0;
--}
-
-@ has_open depends on open @
-identifier fops;
-identifier open.open_f;
-@@
-struct file_operations fops = {
-...,
--.open = open_f,
-+.open = simple_open,
-...
-};
-
-@ openr depends on report @
-identifier open_f != simple_open;
-identifier i, f;
-position p;
-@@
-int open_f@p(struct inode *i, struct file *f)
-{
-(
-if (i->i_private)
-f->private_data = i->i_private;
-|
-f->private_data = i->i_private;
-)
-return 0;
-}
-
-@ has_openr depends on openr @
-identifier fops;
-identifier openr.open_f;
-position p;
-@@
-struct file_operations fops = {
-...,
-.open = open_f@p,
-...
-};
-
-@script:python@
-pf << openr.p;
-ps << has_openr.p;
-@@
-
-coccilib.report.print_report(pf[0],"WARNING opportunity for simple_open, see also structure on line %s"%(ps[0].line))
diff --git a/ANDROID_3.4.5/scripts/coccinelle/free/clk_put.cocci b/ANDROID_3.4.5/scripts/coccinelle/free/clk_put.cocci
deleted file mode 100644
index 46747adf..00000000
--- a/ANDROID_3.4.5/scripts/coccinelle/free/clk_put.cocci
+++ /dev/null
@@ -1,67 +0,0 @@
-/// Find missing clk_puts.
-///
-//# This only signals a missing clk_put when there is a clk_put later
-//# in the same function.
-//# False positives can be due to loops.
-//
-// Confidence: Moderate
-// Copyright: (C) 2012 Julia Lawall, INRIA/LIP6. GPLv2.
-// Copyright: (C) 2012 Gilles Muller, INRIA/LiP6. GPLv2.
-// URL: http://coccinelle.lip6.fr/
-// Comments:
-// Options:
-
-virtual context
-virtual org
-virtual report
-
-@clk@
-expression e;
-statement S,S1;
-int ret;
-position p1,p2,p3;
-@@
-
-e = clk_get@p1(...)
-... when != clk_put(e)
-if (<+...e...+>) S
-... when any
- when != clk_put(e)
- when != if (...) { ... clk_put(e); ... }
-(
- if (ret == 0) S1
-|
-if (...)
- { ...
- return 0; }
-|
-if (...)
- { ...
- return <+...e...+>; }
-|
-*if@p2 (...)
- { ... when != clk_put(e)
- when forall
- return@p3 ...; }
-)
-... when any
-clk_put(e);
-
-@script:python depends on org@
-p1 << clk.p1;
-p2 << clk.p2;
-p3 << clk.p3;
-@@
-
-cocci.print_main("clk_get",p1)
-cocci.print_secs("if",p2)
-cocci.print_secs("needed clk_put",p3)
-
-@script:python depends on report@
-p1 << clk.p1;
-p2 << clk.p2;
-p3 << clk.p3;
-@@
-
-msg = "ERROR: missing clk_put; clk_get on line %s and execution via conditional on line %s" % (p1[0].line,p2[0].line)
-coccilib.report.print_report(p3[0],msg)
diff --git a/ANDROID_3.4.5/scripts/coccinelle/free/devm_free.cocci b/ANDROID_3.4.5/scripts/coccinelle/free/devm_free.cocci
deleted file mode 100644
index 0a1e3614..00000000
--- a/ANDROID_3.4.5/scripts/coccinelle/free/devm_free.cocci
+++ /dev/null
@@ -1,71 +0,0 @@
-/// Find uses of standard freeing functons on values allocated using devm_
-/// functions. Values allocated using the devm_functions are freed when
-/// the device is detached, and thus the use of the standard freeing
-/// function would cause a double free.
-/// See Documentation/driver-model/devres.txt for more information.
-///
-/// A difficulty of detecting this problem is that the standard freeing
-/// function might be called from a different function than the one
-/// containing the allocation function. It is thus necessary to make the
-/// connection between the allocation function and the freeing function.
-/// Here this is done using the specific argument text, which is prone to
-/// false positives. There is no rule for the request_region and
-/// request_mem_region variants because this heuristic seems to be a bit
-/// less reliable in these cases.
-///
-// Confidence: Moderate
-// Copyright: (C) 2011 Julia Lawall, INRIA/LIP6. GPLv2.
-// Copyright: (C) 2011 Gilles Muller, INRIA/LiP6. GPLv2.
-// URL: http://coccinelle.lip6.fr/
-// Comments:
-// Options: -no_includes -include_headers
-
-virtual org
-virtual report
-virtual context
-
-@r depends on context || org || report@
-expression x;
-@@
-
-(
- x = devm_kzalloc(...)
-|
- x = devm_request_irq(...)
-|
- x = devm_ioremap(...)
-|
- x = devm_ioremap_nocache(...)
-|
- x = devm_ioport_map(...)
-)
-
-@pb@
-expression r.x;
-position p;
-@@
-
-(
-* kfree@p(x)
-|
-* free_irq@p(x)
-|
-* iounmap@p(x)
-|
-* ioport_unmap@p(x)
-)
-
-@script:python depends on org@
-p << pb.p;
-@@
-
-msg="WARNING: invalid free of devm_ allocated data"
-coccilib.org.print_todo(p[0], msg)
-
-@script:python depends on report@
-p << pb.p;
-@@
-
-msg="WARNING: invalid free of devm_ allocated data"
-coccilib.report.print_report(p[0], msg)
-
diff --git a/ANDROID_3.4.5/scripts/coccinelle/free/iounmap.cocci b/ANDROID_3.4.5/scripts/coccinelle/free/iounmap.cocci
deleted file mode 100644
index 5384f4ba..00000000
--- a/ANDROID_3.4.5/scripts/coccinelle/free/iounmap.cocci
+++ /dev/null
@@ -1,67 +0,0 @@
-/// Find missing iounmaps.
-///
-//# This only signals a missing iounmap when there is an iounmap later
-//# in the same function.
-//# False positives can be due to loops.
-//
-// Confidence: Moderate
-// Copyright: (C) 2012 Julia Lawall, INRIA/LIP6. GPLv2.
-// Copyright: (C) 2012 Gilles Muller, INRIA/LiP6. GPLv2.
-// URL: http://coccinelle.lip6.fr/
-// Comments:
-// Options:
-
-virtual context
-virtual org
-virtual report
-
-@iom@
-expression e;
-statement S,S1;
-int ret;
-position p1,p2,p3;
-@@
-
-e = \(ioremap@p1\|ioremap_nocache@p1\)(...)
-... when != iounmap(e)
-if (<+...e...+>) S
-... when any
- when != iounmap(e)
- when != if (...) { ... iounmap(e); ... }
-(
- if (ret == 0) S1
-|
-if (...)
- { ...
- return 0; }
-|
-if (...)
- { ...
- return <+...e...+>; }
-|
-*if@p2 (...)
- { ... when != iounmap(e)
- when forall
- return@p3 ...; }
-)
-... when any
-iounmap(e);
-
-@script:python depends on org@
-p1 << iom.p1;
-p2 << iom.p2;
-p3 << iom.p3;
-@@
-
-cocci.print_main("ioremap",p1)
-cocci.print_secs("if",p2)
-cocci.print_secs("needed iounmap",p3)
-
-@script:python depends on report@
-p1 << iom.p1;
-p2 << iom.p2;
-p3 << iom.p3;
-@@
-
-msg = "ERROR: missing iounmap; ioremap on line %s and execution via conditional on line %s" % (p1[0].line,p2[0].line)
-coccilib.report.print_report(p3[0],msg)
diff --git a/ANDROID_3.4.5/scripts/coccinelle/free/kfree.cocci b/ANDROID_3.4.5/scripts/coccinelle/free/kfree.cocci
deleted file mode 100644
index d9ae6d89..00000000
--- a/ANDROID_3.4.5/scripts/coccinelle/free/kfree.cocci
+++ /dev/null
@@ -1,121 +0,0 @@
-/// Find a use after free.
-//# Values of variables may imply that some
-//# execution paths are not possible, resulting in false positives.
-//# Another source of false positives are macros such as
-//# SCTP_DBG_OBJCNT_DEC that do not actually evaluate their argument
-///
-// Confidence: Moderate
-// Copyright: (C) 2010-2012 Nicolas Palix. GPLv2.
-// Copyright: (C) 2010-2012 Julia Lawall, INRIA/LIP6. GPLv2.
-// Copyright: (C) 2010-2012 Gilles Muller, INRIA/LiP6. GPLv2.
-// URL: http://coccinelle.lip6.fr/
-// Comments:
-// Options: -no_includes -include_headers
-
-virtual org
-virtual report
-
-@free@
-expression E;
-position p1;
-@@
-
-kfree@p1(E)
-
-@print expression@
-constant char [] c;
-expression free.E,E2;
-type T;
-position p;
-identifier f;
-@@
-
-(
- f(...,c,...,(T)E@p,...)
-|
- E@p == E2
-|
- E@p != E2
-|
- E2 == E@p
-|
- E2 != E@p
-|
- !E@p
-|
- E@p || ...
-)
-
-@sz@
-expression free.E;
-position p;
-@@
-
- sizeof(<+...E@p...+>)
-
-@loop exists@
-expression E;
-identifier l;
-position ok;
-@@
-
-while (1) { ...
- kfree@ok(E)
- ... when != break;
- when != goto l;
- when forall
-}
-
-@r exists@
-expression free.E, subE<=free.E, E2;
-expression E1;
-iterator iter;
-statement S;
-position free.p1!=loop.ok,p2!={print.p,sz.p};
-@@
-
-kfree@p1(E,...)
-...
-(
- iter(...,subE,...) S // no use
-|
- list_remove_head(E1,subE,...)
-|
- subE = E2
-|
- subE++
-|
- ++subE
-|
- --subE
-|
- subE--
-|
- &subE
-|
- BUG(...)
-|
- BUG_ON(...)
-|
- return_VALUE(...)
-|
- return_ACPI_STATUS(...)
-|
- E@p2 // bad use
-)
-
-@script:python depends on org@
-p1 << free.p1;
-p2 << r.p2;
-@@
-
-cocci.print_main("kfree",p1)
-cocci.print_secs("ref",p2)
-
-@script:python depends on report@
-p1 << free.p1;
-p2 << r.p2;
-@@
-
-msg = "ERROR: reference preceded by free on line %s" % (p1[0].line)
-coccilib.report.print_report(p2[0],msg)
diff --git a/ANDROID_3.4.5/scripts/coccinelle/iterators/fen.cocci b/ANDROID_3.4.5/scripts/coccinelle/iterators/fen.cocci
deleted file mode 100644
index 0a40af82..00000000
--- a/ANDROID_3.4.5/scripts/coccinelle/iterators/fen.cocci
+++ /dev/null
@@ -1,123 +0,0 @@
-/// These iterators only exit normally when the loop cursor is NULL, so there
-/// is no point to call of_node_put on the final value.
-///
-// Confidence: High
-// Copyright: (C) 2010-2012 Nicolas Palix. GPLv2.
-// Copyright: (C) 2010-2012 Julia Lawall, INRIA/LIP6. GPLv2.
-// Copyright: (C) 2010-2012 Gilles Muller, INRIA/LiP6. GPLv2.
-// URL: http://coccinelle.lip6.fr/
-// Comments:
-// Options: -no_includes -include_headers
-
-virtual patch
-virtual context
-virtual org
-virtual report
-
-@depends on patch@
-iterator name for_each_node_by_name;
-expression np,E;
-identifier l;
-@@
-
-for_each_node_by_name(np,...) {
- ... when != break;
- when != goto l;
-}
-... when != np = E
-- of_node_put(np);
-
-@depends on patch@
-iterator name for_each_node_by_type;
-expression np,E;
-identifier l;
-@@
-
-for_each_node_by_type(np,...) {
- ... when != break;
- when != goto l;
-}
-... when != np = E
-- of_node_put(np);
-
-@depends on patch@
-iterator name for_each_compatible_node;
-expression np,E;
-identifier l;
-@@
-
-for_each_compatible_node(np,...) {
- ... when != break;
- when != goto l;
-}
-... when != np = E
-- of_node_put(np);
-
-@depends on patch@
-iterator name for_each_matching_node;
-expression np,E;
-identifier l;
-@@
-
-for_each_matching_node(np,...) {
- ... when != break;
- when != goto l;
-}
-... when != np = E
-- of_node_put(np);
-
-// ----------------------------------------------------------------------
-
-@r depends on !patch forall@
-//iterator name for_each_node_by_name;
-//iterator name for_each_node_by_type;
-//iterator name for_each_compatible_node;
-//iterator name for_each_matching_node;
-expression np,E;
-identifier l;
-position p1,p2;
-@@
-
-(
-*for_each_node_by_name@p1(np,...)
-{
- ... when != break;
- when != goto l;
-}
-|
-*for_each_node_by_type@p1(np,...)
-{
- ... when != break;
- when != goto l;
-}
-|
-*for_each_compatible_node@p1(np,...)
-{
- ... when != break;
- when != goto l;
-}
-|
-*for_each_matching_node@p1(np,...)
-{
- ... when != break;
- when != goto l;
-}
-)
-... when != np = E
-* of_node_put@p2(np);
-
-@script:python depends on org@
-p1 << r.p1;
-p2 << r.p2;
-@@
-
-cocci.print_main("unneeded of_node_put",p2)
-cocci.print_secs("iterator",p1)
-
-@script:python depends on report@
-p1 << r.p1;
-p2 << r.p2;
-@@
-
-msg = "ERROR: of_node_put not needed after iterator on line %s" % (p1[0].line)
-coccilib.report.print_report(p2[0], msg)
diff --git a/ANDROID_3.4.5/scripts/coccinelle/iterators/itnull.cocci b/ANDROID_3.4.5/scripts/coccinelle/iterators/itnull.cocci
deleted file mode 100644
index 259899f6..00000000
--- a/ANDROID_3.4.5/scripts/coccinelle/iterators/itnull.cocci
+++ /dev/null
@@ -1,94 +0,0 @@
-/// Many iterators have the property that the first argument is always bound
-/// to a real list element, never NULL.
-//# False positives arise for some iterators that do not have this property,
-//# or in cases when the loop cursor is reassigned. The latter should only
-//# happen when the matched code is on the way to a loop exit (break, goto,
-//# or return).
-///
-// Confidence: Moderate
-// Copyright: (C) 2010-2012 Nicolas Palix. GPLv2.
-// Copyright: (C) 2010-2012 Julia Lawall, INRIA/LIP6. GPLv2.
-// Copyright: (C) 2010-2012 Gilles Muller, INRIA/LiP6. GPLv2.
-// URL: http://coccinelle.lip6.fr/
-// Comments:
-// Options: -no_includes -include_headers
-
-virtual patch
-virtual context
-virtual org
-virtual report
-
-@depends on patch@
-iterator I;
-expression x,E,E1,E2;
-statement S,S1,S2;
-@@
-
-I(x,...) { <...
-(
-- if (x == NULL && ...) S
-|
-- if (x != NULL || ...)
- S
-|
-- (x == NULL) ||
- E
-|
-- (x != NULL) &&
- E
-|
-- (x == NULL && ...) ? E1 :
- E2
-|
-- (x != NULL || ...) ?
- E1
-- : E2
-|
-- if (x == NULL && ...) S1 else
- S2
-|
-- if (x != NULL || ...)
- S1
-- else S2
-|
-+ BAD(
- x == NULL
-+ )
-|
-+ BAD(
- x != NULL
-+ )
-)
- ...> }
-
-@r depends on !patch exists@
-iterator I;
-expression x,E;
-position p1,p2;
-@@
-
-*I@p1(x,...)
-{ ... when != x = E
-(
-* x@p2 == NULL
-|
-* x@p2 != NULL
-)
- ... when any
-}
-
-@script:python depends on org@
-p1 << r.p1;
-p2 << r.p2;
-@@
-
-cocci.print_main("iterator-bound variable",p1)
-cocci.print_secs("useless NULL test",p2)
-
-@script:python depends on report@
-p1 << r.p1;
-p2 << r.p2;
-@@
-
-msg = "ERROR: iterator variable bound on line %s cannot be NULL" % (p1[0].line)
-coccilib.report.print_report(p2[0], msg)
diff --git a/ANDROID_3.4.5/scripts/coccinelle/iterators/list_entry_update.cocci b/ANDROID_3.4.5/scripts/coccinelle/iterators/list_entry_update.cocci
deleted file mode 100644
index b2967475..00000000
--- a/ANDROID_3.4.5/scripts/coccinelle/iterators/list_entry_update.cocci
+++ /dev/null
@@ -1,62 +0,0 @@
-/// list_for_each_entry uses its first argument to get from one element of
-/// the list to the next, so it is usually not a good idea to reassign it.
-/// The first rule finds such a reassignment and the second rule checks
-/// that there is a path from the reassignment back to the top of the loop.
-///
-// Confidence: High
-// Copyright: (C) 2010 Nicolas Palix, DIKU. GPLv2.
-// Copyright: (C) 2010 Julia Lawall, DIKU. GPLv2.
-// Copyright: (C) 2010 Gilles Muller, INRIA/LiP6. GPLv2.
-// URL: http://coccinelle.lip6.fr/
-// Comments:
-// Options: -no_includes -include_headers
-
-virtual context
-virtual org
-virtual report
-
-@r@
-iterator name list_for_each_entry;
-expression x,E;
-position p1,p2;
-@@
-
-list_for_each_entry@p1(x,...) { <... x =@p2 E ...> }
-
-@depends on context && !org && !report@
-expression x,E;
-position r.p1,r.p2;
-statement S;
-@@
-
-*x =@p2 E
-...
-list_for_each_entry@p1(x,...) S
-
-// ------------------------------------------------------------------------
-
-@back depends on (org || report) && !context exists@
-expression x,E;
-position r.p1,r.p2;
-statement S;
-@@
-
-x =@p2 E
-...
-list_for_each_entry@p1(x,...) S
-
-@script:python depends on back && org@
-p1 << r.p1;
-p2 << r.p2;
-@@
-
-cocci.print_main("iterator",p1)
-cocci.print_secs("update",p2)
-
-@script:python depends on back && report@
-p1 << r.p1;
-p2 << r.p2;
-@@
-
-msg = "iterator with update on line %s" % (p2[0].line)
-coccilib.report.print_report(p1[0],msg)
diff --git a/ANDROID_3.4.5/scripts/coccinelle/locks/call_kern.cocci b/ANDROID_3.4.5/scripts/coccinelle/locks/call_kern.cocci
deleted file mode 100644
index 8f10b496..00000000
--- a/ANDROID_3.4.5/scripts/coccinelle/locks/call_kern.cocci
+++ /dev/null
@@ -1,105 +0,0 @@
-/// Find functions that refer to GFP_KERNEL but are called with locks held.
-//# The proposed change of converting the GFP_KERNEL is not necessarily the
-//# correct one. It may be desired to unlock the lock, or to not call the
-//# function under the lock in the first place.
-///
-// Confidence: Moderate
-// Copyright: (C) 2012 Nicolas Palix. GPLv2.
-// Copyright: (C) 2012 Julia Lawall, INRIA/LIP6. GPLv2.
-// Copyright: (C) 2012 Gilles Muller, INRIA/LiP6. GPLv2.
-// URL: http://coccinelle.lip6.fr/
-// Comments:
-// Options: -no_includes -include_headers
-
-virtual patch
-virtual context
-virtual org
-virtual report
-
-@gfp exists@
-identifier fn;
-position p;
-@@
-
-fn(...) {
- ... when != read_unlock_irq(...)
- when != write_unlock_irq(...)
- when != read_unlock_irqrestore(...)
- when != write_unlock_irqrestore(...)
- when != spin_unlock(...)
- when != spin_unlock_irq(...)
- when != spin_unlock_irqrestore(...)
- when != local_irq_enable(...)
- when any
- GFP_KERNEL@p
- ... when any
-}
-
-@locked exists@
-identifier gfp.fn;
-position p1,p2;
-@@
-
-(
-read_lock_irq@p1
-|
-write_lock_irq@p1
-|
-read_lock_irqsave@p1
-|
-write_lock_irqsave@p1
-|
-spin_lock@p1
-|
-spin_trylock@p1
-|
-spin_lock_irq@p1
-|
-spin_lock_irqsave@p1
-|
-local_irq_disable@p1
-)
- (...)
-... when != read_unlock_irq(...)
- when != write_unlock_irq(...)
- when != read_unlock_irqrestore(...)
- when != write_unlock_irqrestore(...)
- when != spin_unlock(...)
- when != spin_unlock_irq(...)
- when != spin_unlock_irqrestore(...)
- when != local_irq_enable(...)
-fn@p2(...)
-
-@depends on locked && patch@
-position gfp.p;
-@@
-
-- GFP_KERNEL@p
-+ GFP_ATOMIC
-
-@depends on locked && !patch@
-position gfp.p;
-@@
-
-* GFP_KERNEL@p
-
-@script:python depends on !patch && org@
-p << gfp.p;
-fn << gfp.fn;
-p1 << locked.p1;
-p2 << locked.p2;
-@@
-
-cocci.print_main("lock",p1)
-cocci.print_secs("call",p2)
-cocci.print_secs("GFP_KERNEL",p)
-
-@script:python depends on !patch && report@
-p << gfp.p;
-fn << gfp.fn;
-p1 << locked.p1;
-p2 << locked.p2;
-@@
-
-msg = "ERROR: function %s called on line %s inside lock on line %s but uses GFP_KERNEL" % (fn,p2[0].line,p1[0].line)
-coccilib.report.print_report(p[0], msg)
diff --git a/ANDROID_3.4.5/scripts/coccinelle/locks/double_lock.cocci b/ANDROID_3.4.5/scripts/coccinelle/locks/double_lock.cocci
deleted file mode 100644
index 63b24e68..00000000
--- a/ANDROID_3.4.5/scripts/coccinelle/locks/double_lock.cocci
+++ /dev/null
@@ -1,92 +0,0 @@
-/// Find double locks. False positives may occur when some paths cannot
-/// occur at execution, due to the values of variables, and when there is
-/// an intervening function call that releases the lock.
-///
-// Confidence: Moderate
-// Copyright: (C) 2010 Nicolas Palix, DIKU. GPLv2.
-// Copyright: (C) 2010 Julia Lawall, DIKU. GPLv2.
-// Copyright: (C) 2010 Gilles Muller, INRIA/LiP6. GPLv2.
-// URL: http://coccinelle.lip6.fr/
-// Comments:
-// Options: -no_includes -include_headers
-
-virtual org
-virtual report
-
-@locked@
-position p1;
-expression E1;
-position p;
-@@
-
-(
-mutex_lock@p1
-|
-mutex_trylock@p1
-|
-spin_lock@p1
-|
-spin_trylock@p1
-|
-read_lock@p1
-|
-read_trylock@p1
-|
-write_lock@p1
-|
-write_trylock@p1
-) (E1@p,...);
-
-@balanced@
-position p1 != locked.p1;
-position locked.p;
-identifier lock,unlock;
-expression x <= locked.E1;
-expression E,locked.E1;
-expression E2;
-@@
-
-if (E) {
- <+... when != E1
- lock(E1@p,...)
- ...+>
-}
-... when != E1
- when != \(x = E2\|&x\)
- when forall
-if (E) {
- <+... when != E1
- unlock@p1(E1,...)
- ...+>
-}
-
-@r depends on !balanced exists@
-expression x <= locked.E1;
-expression locked.E1;
-expression E2;
-identifier lock;
-position locked.p,p1,p2;
-@@
-
-lock@p1 (E1@p,...);
-... when != E1
- when != \(x = E2\|&x\)
-lock@p2 (E1,...);
-
-@script:python depends on org@
-p1 << r.p1;
-p2 << r.p2;
-lock << r.lock;
-@@
-
-cocci.print_main(lock,p1)
-cocci.print_secs("second lock",p2)
-
-@script:python depends on report@
-p1 << r.p1;
-p2 << r.p2;
-lock << r.lock;
-@@
-
-msg = "second lock on line %s" % (p2[0].line)
-coccilib.report.print_report(p1[0],msg)
diff --git a/ANDROID_3.4.5/scripts/coccinelle/locks/flags.cocci b/ANDROID_3.4.5/scripts/coccinelle/locks/flags.cocci
deleted file mode 100644
index 1c4ffe6f..00000000
--- a/ANDROID_3.4.5/scripts/coccinelle/locks/flags.cocci
+++ /dev/null
@@ -1,80 +0,0 @@
-/// Find nested lock+irqsave functions that use the same flags variables
-///
-// Confidence: High
-// Copyright: (C) 2010-2012 Nicolas Palix. GPLv2.
-// Copyright: (C) 2010-2012 Julia Lawall, INRIA/LIP6. GPLv2.
-// Copyright: (C) 2010-2012 Gilles Muller, INRIA/LiP6. GPLv2.
-// URL: http://coccinelle.lip6.fr/
-// Comments:
-// Options: -no_includes -include_headers
-
-virtual context
-virtual org
-virtual report
-
-@r exists@
-expression lock1,lock2,flags;
-position p1,p2;
-@@
-
-(
-spin_lock_irqsave@p1(lock1,flags)
-|
-read_lock_irqsave@p1(lock1,flags)
-|
-write_lock_irqsave@p1(lock1,flags)
-)
-... when != flags
-(
-spin_lock_irqsave(lock1,flags)
-|
-read_lock_irqsave(lock1,flags)
-|
-write_lock_irqsave(lock1,flags)
-|
-spin_lock_irqsave@p2(lock2,flags)
-|
-read_lock_irqsave@p2(lock2,flags)
-|
-write_lock_irqsave@p2(lock2,flags)
-)
-
-@d exists@
-expression f <= r.flags;
-expression lock1,lock2,flags;
-position r.p1, r.p2;
-@@
-
-(
-*spin_lock_irqsave@p1(lock1,flags)
-|
-*read_lock_irqsave@p1(lock1,flags)
-|
-*write_lock_irqsave@p1(lock1,flags)
-)
-... when != f
-(
-*spin_lock_irqsave@p2(lock2,flags)
-|
-*read_lock_irqsave@p2(lock2,flags)
-|
-*write_lock_irqsave@p2(lock2,flags)
-)
-
-// ----------------------------------------------------------------------
-
-@script:python depends on d && org@
-p1 << r.p1;
-p2 << r.p2;
-@@
-
-cocci.print_main("original lock",p1)
-cocci.print_secs("nested lock+irqsave that reuses flags",p2)
-
-@script:python depends on d && report@
-p1 << r.p1;
-p2 << r.p2;
-@@
-
-msg="ERROR: nested lock+irqsave that reuses flags from line %s." % (p1[0].line)
-coccilib.report.print_report(p2[0], msg)
diff --git a/ANDROID_3.4.5/scripts/coccinelle/locks/mini_lock.cocci b/ANDROID_3.4.5/scripts/coccinelle/locks/mini_lock.cocci
deleted file mode 100644
index 3267d741..00000000
--- a/ANDROID_3.4.5/scripts/coccinelle/locks/mini_lock.cocci
+++ /dev/null
@@ -1,96 +0,0 @@
-/// Find missing unlocks. This semantic match considers the specific case
-/// where the unlock is missing from an if branch, and there is a lock
-/// before the if and an unlock after the if. False positives are due to
-/// cases where the if branch represents a case where the function is
-/// supposed to exit with the lock held, or where there is some preceding
-/// function call that releases the lock.
-///
-// Confidence: Moderate
-// Copyright: (C) 2010-2012 Nicolas Palix. GPLv2.
-// Copyright: (C) 2010-2012 Julia Lawall, INRIA/LIP6. GPLv2.
-// Copyright: (C) 2010-2012 Gilles Muller, INRIA/LiP6. GPLv2.
-// URL: http://coccinelle.lip6.fr/
-// Comments:
-// Options: -no_includes -include_headers
-
-virtual context
-virtual org
-virtual report
-
-@prelocked@
-position p1,p;
-expression E1;
-@@
-
-(
-mutex_lock@p1
-|
-mutex_trylock@p1
-|
-spin_lock@p1
-|
-spin_trylock@p1
-|
-read_lock@p1
-|
-read_trylock@p1
-|
-write_lock@p1
-|
-write_trylock@p1
-|
-read_lock_irq@p1
-|
-write_lock_irq@p1
-|
-read_lock_irqsave@p1
-|
-write_lock_irqsave@p1
-|
-spin_lock_irq@p1
-|
-spin_lock_irqsave@p1
-) (E1@p,...);
-
-@looped@
-position r;
-@@
-
-for(...;...;...) { <+... return@r ...; ...+> }
-
-@err exists@
-expression E1;
-position prelocked.p;
-position up != prelocked.p1;
-position r!=looped.r;
-identifier lock,unlock;
-@@
-
-*lock(E1@p,...);
-<+... when != E1
-if (...) {
- ... when != E1
-* return@r ...;
-}
-...+>
-*unlock@up(E1,...);
-
-@script:python depends on org@
-p << prelocked.p1;
-lock << err.lock;
-unlock << err.unlock;
-p2 << err.r;
-@@
-
-cocci.print_main(lock,p)
-cocci.print_secs(unlock,p2)
-
-@script:python depends on report@
-p << prelocked.p1;
-lock << err.lock;
-unlock << err.unlock;
-p2 << err.r;
-@@
-
-msg = "preceding lock on line %s" % (p[0].line)
-coccilib.report.print_report(p2[0],msg)
diff --git a/ANDROID_3.4.5/scripts/coccinelle/misc/boolinit.cocci b/ANDROID_3.4.5/scripts/coccinelle/misc/boolinit.cocci
deleted file mode 100644
index 97ce41ce..00000000
--- a/ANDROID_3.4.5/scripts/coccinelle/misc/boolinit.cocci
+++ /dev/null
@@ -1,178 +0,0 @@
-/// Bool initializations should use true and false. Bool tests don't need
-/// comparisons. Based on contributions from Joe Perches, Rusty Russell
-/// and Bruce W Allan.
-///
-// Confidence: High
-// Copyright: (C) 2012 Julia Lawall, INRIA/LIP6. GPLv2.
-// Copyright: (C) 2012 Gilles Muller, INRIA/LiP6. GPLv2.
-// URL: http://coccinelle.lip6.fr/
-// Options: -include_headers
-
-virtual patch
-virtual context
-virtual org
-virtual report
-
-@depends on patch@
-bool t;
-symbol true;
-symbol false;
-@@
-
-(
-- t == true
-+ t
-|
-- true == t
-+ t
-|
-- t != true
-+ !t
-|
-- true != t
-+ !t
-|
-- t == false
-+ !t
-|
-- false == t
-+ !t
-|
-- t != false
-+ t
-|
-- false != t
-+ t
-)
-
-@depends on patch disable is_zero, isnt_zero@
-bool t;
-@@
-
-(
-- t == 1
-+ t
-|
-- t != 1
-+ !t
-|
-- t == 0
-+ !t
-|
-- t != 0
-+ t
-)
-
-@depends on patch@
-bool b;
-@@
-(
- b =
-- 0
-+ false
-|
- b =
-- 1
-+ true
-)
-
-// ---------------------------------------------------------------------
-
-@r1 depends on !patch@
-bool t;
-position p;
-@@
-
-(
-* t@p == true
-|
-* true == t@p
-|
-* t@p != true
-|
-* true != t@p
-|
-* t@p == false
-|
-* false == t@p
-|
-* t@p != false
-|
-* false != t@p
-)
-
-@r2 depends on !patch disable is_zero, isnt_zero@
-bool t;
-position p;
-@@
-
-(
-* t@p == 1
-|
-* t@p != 1
-|
-* t@p == 0
-|
-* t@p != 0
-)
-
-@r3 depends on !patch@
-bool b;
-position p1,p2;
-constant c;
-@@
-(
-*b@p1 = 0
-|
-*b@p1 = 1
-|
-*b@p2 = c
-)
-
-@script:python depends on org@
-p << r1.p;
-@@
-
-cocci.print_main("WARNING: Comparison to bool",p)
-
-@script:python depends on org@
-p << r2.p;
-@@
-
-cocci.print_main("WARNING: Comparison of bool to 0/1",p)
-
-@script:python depends on org@
-p1 << r3.p1;
-@@
-
-cocci.print_main("WARNING: Assignment of bool to 0/1",p1)
-
-@script:python depends on org@
-p2 << r3.p2;
-@@
-
-cocci.print_main("ERROR: Assignment of bool to non-0/1 constant",p2)
-
-@script:python depends on report@
-p << r1.p;
-@@
-
-coccilib.report.print_report(p[0],"WARNING: Comparison to bool")
-
-@script:python depends on report@
-p << r2.p;
-@@
-
-coccilib.report.print_report(p[0],"WARNING: Comparison of bool to 0/1")
-
-@script:python depends on report@
-p1 << r3.p1;
-@@
-
-coccilib.report.print_report(p1[0],"WARNING: Assignment of bool to 0/1")
-
-@script:python depends on report@
-p2 << r3.p2;
-@@
-
-coccilib.report.print_report(p2[0],"ERROR: Assignment of bool to non-0/1 constant")
diff --git a/ANDROID_3.4.5/scripts/coccinelle/misc/cstptr.cocci b/ANDROID_3.4.5/scripts/coccinelle/misc/cstptr.cocci
deleted file mode 100644
index d4256448..00000000
--- a/ANDROID_3.4.5/scripts/coccinelle/misc/cstptr.cocci
+++ /dev/null
@@ -1,41 +0,0 @@
-/// PTR_ERR should be applied before its argument is reassigned, typically
-/// to NULL
-///
-// Confidence: High
-// Copyright: (C) 2012 Julia Lawall, INRIA/LIP6. GPLv2.
-// Copyright: (C) 2012 Gilles Muller, INRIA/LiP6. GPLv2.
-// URL: http://coccinelle.lip6.fr/
-// Comments:
-// Options: -no_includes -include_headers
-
-virtual org
-virtual report
-virtual context
-
-@r exists@
-expression e,e1;
-constant c;
-position p1,p2;
-@@
-
-*e@p1 = c
-... when != e = e1
- when != &e
- when != true IS_ERR(e)
-*PTR_ERR@p2(e)
-
-@script:python depends on org@
-p1 << r.p1;
-p2 << r.p2;
-@@
-
-cocci.print_main("PTR_ERR",p2)
-cocci.print_secs("assignment",p1)
-
-@script:python depends on report@
-p1 << r.p1;
-p2 << r.p2;
-@@
-
-msg = "ERROR: PTR_ERR applied after initialization to constant on line %s" % (p1[0].line)
-coccilib.report.print_report(p2[0],msg)
diff --git a/ANDROID_3.4.5/scripts/coccinelle/misc/doubleinit.cocci b/ANDROID_3.4.5/scripts/coccinelle/misc/doubleinit.cocci
deleted file mode 100644
index cf74a00c..00000000
--- a/ANDROID_3.4.5/scripts/coccinelle/misc/doubleinit.cocci
+++ /dev/null
@@ -1,53 +0,0 @@
-/// Find duplicate field initializations. This has a high rate of false
-/// positives due to #ifdefs, which Coccinelle is not aware of in a structure
-/// initialization.
-///
-// Confidence: Low
-// Copyright: (C) 2010-2012 Nicolas Palix. GPLv2.
-// Copyright: (C) 2010-2012 Julia Lawall, INRIA/LIP6. GPLv2.
-// Copyright: (C) 2010-2012 Gilles Muller, INRIA/LiP6. GPLv2.
-// URL: http://coccinelle.lip6.fr/
-// Comments: requires at least Coccinelle 0.2.4, lex or parse error otherwise
-// Options: -no_includes -include_headers
-
-virtual org
-virtual report
-
-@r@
-identifier I, s, fld;
-position p0,p;
-expression E;
-@@
-
-struct I s =@p0 { ..., .fld@p = E, ...};
-
-@s@
-identifier I, s, r.fld;
-position r.p0,p;
-expression E;
-@@
-
-struct I s =@p0 { ..., .fld@p = E, ...};
-
-@script:python depends on org@
-p0 << r.p0;
-fld << r.fld;
-ps << s.p;
-pr << r.p;
-@@
-
-if int(ps[0].line) < int(pr[0].line) or (int(ps[0].line) == int(pr[0].line) and int(ps[0].column) < int(pr[0].column)):
- cocci.print_main(fld,p0)
- cocci.print_secs("s",ps)
- cocci.print_secs("r",pr)
-
-@script:python depends on report@
-p0 << r.p0;
-fld << r.fld;
-ps << s.p;
-pr << r.p;
-@@
-
-if int(ps[0].line) < int(pr[0].line) or (int(ps[0].line) == int(pr[0].line) and int(ps[0].column) < int(pr[0].column)):
- msg = "%s: first occurrence line %s, second occurrence line %s" % (fld,ps[0].line,pr[0].line)
- coccilib.report.print_report(p0[0],msg)
diff --git a/ANDROID_3.4.5/scripts/coccinelle/misc/ifcol.cocci b/ANDROID_3.4.5/scripts/coccinelle/misc/ifcol.cocci
deleted file mode 100644
index b7ed91db..00000000
--- a/ANDROID_3.4.5/scripts/coccinelle/misc/ifcol.cocci
+++ /dev/null
@@ -1,48 +0,0 @@
-/// Find confusingly indented code in or after an if. An if branch should
-/// be indented. The code following an if should not be indented.
-/// Sometimes, code after an if that is indented is actually intended to be
-/// part of the if branch.
-///
-/// This has a high rate of false positives, because Coccinelle's column
-/// calculation does not distinguish between spaces and tabs, so code that
-/// is not visually aligned may be considered to be in the same column.
-///
-// Confidence: Low
-// Copyright: (C) 2010 Nicolas Palix, DIKU. GPLv2.
-// Copyright: (C) 2010 Julia Lawall, DIKU. GPLv2.
-// Copyright: (C) 2010 Gilles Muller, INRIA/LiP6. GPLv2.
-// URL: http://coccinelle.lip6.fr/
-// Comments:
-// Options: -no_includes -include_headers
-
-virtual org
-virtual report
-
-@r disable braces4@
-position p1,p2;
-statement S1,S2;
-@@
-
-(
-if (...) { ... }
-|
-if (...) S1@p1 S2@p2
-)
-
-@script:python depends on org@
-p1 << r.p1;
-p2 << r.p2;
-@@
-
-if (p1[0].column == p2[0].column):
- cocci.print_main("branch",p1)
- cocci.print_secs("after",p2)
-
-@script:python depends on report@
-p1 << r.p1;
-p2 << r.p2;
-@@
-
-if (p1[0].column == p2[0].column):
- msg = "code aligned with following code on line %s" % (p2[0].line)
- coccilib.report.print_report(p1[0],msg)
diff --git a/ANDROID_3.4.5/scripts/coccinelle/null/badzero.cocci b/ANDROID_3.4.5/scripts/coccinelle/null/badzero.cocci
deleted file mode 100644
index d79baf72..00000000
--- a/ANDROID_3.4.5/scripts/coccinelle/null/badzero.cocci
+++ /dev/null
@@ -1,237 +0,0 @@
-/// Compare pointer-typed values to NULL rather than 0
-///
-//# This makes an effort to choose between !x and x == NULL. !x is used
-//# if it has previously been used with the function used to initialize x.
-//# This relies on type information. More type information can be obtained
-//# using the option -all_includes and the option -I to specify an
-//# include path.
-//
-// Confidence: High
-// Copyright: (C) 2012 Julia Lawall, INRIA/LIP6. GPLv2.
-// Copyright: (C) 2012 Gilles Muller, INRIA/LiP6. GPLv2.
-// URL: http://coccinelle.lip6.fr/
-// Comments:
-// Options:
-
-virtual patch
-virtual context
-virtual org
-virtual report
-
-@initialize:ocaml@
-let negtable = Hashtbl.create 101
-
-@depends on patch@
-expression *E;
-identifier f;
-@@
-
-(
- (E = f(...)) ==
-- 0
-+ NULL
-|
- (E = f(...)) !=
-- 0
-+ NULL
-|
-- 0
-+ NULL
- == (E = f(...))
-|
-- 0
-+ NULL
- != (E = f(...))
-)
-
-
-@t1 depends on !patch@
-expression *E;
-identifier f;
-position p;
-@@
-
-(
- (E = f(...)) ==
-* 0@p
-|
- (E = f(...)) !=
-* 0@p
-|
-* 0@p
- == (E = f(...))
-|
-* 0@p
- != (E = f(...))
-)
-
-@script:python depends on org@
-p << t1.p;
-@@
-
-coccilib.org.print_todo(p[0], "WARNING comparing pointer to 0")
-
-@script:python depends on report@
-p << t1.p;
-@@
-
-coccilib.report.print_report(p[0], "WARNING comparing pointer to 0")
-
-// Tests of returned values
-
-@s@
-identifier f;
-expression E,E1;
-@@
-
- E = f(...)
- ... when != E = E1
- !E
-
-@script:ocaml depends on s@
-f << s.f;
-@@
-
-try let _ = Hashtbl.find negtable f in ()
-with Not_found -> Hashtbl.add negtable f ()
-
-@ r disable is_zero,isnt_zero exists @
-expression *E;
-identifier f;
-@@
-
-E = f(...)
-...
-(E == 0
-|E != 0
-|0 == E
-|0 != E
-)
-
-@script:ocaml@
-f << r.f;
-@@
-
-try let _ = Hashtbl.find negtable f in ()
-with Not_found -> include_match false
-
-// This rule may lead to inconsistent path problems, if E is defined in two
-// places
-@ depends on patch disable is_zero,isnt_zero @
-expression *E;
-expression E1;
-identifier r.f;
-@@
-
-E = f(...)
-<...
-(
-- E == 0
-+ !E
-|
-- E != 0
-+ E
-|
-- 0 == E
-+ !E
-|
-- 0 != E
-+ E
-)
-...>
-?E = E1
-
-@t2 depends on !patch disable is_zero,isnt_zero @
-expression *E;
-expression E1;
-identifier r.f;
-position p1;
-position p2;
-@@
-
-E = f(...)
-<...
-(
-* E == 0@p1
-|
-* E != 0@p2
-|
-* 0@p1 == E
-|
-* 0@p1 != E
-)
-...>
-?E = E1
-
-@script:python depends on org@
-p << t2.p1;
-@@
-
-coccilib.org.print_todo(p[0], "WARNING comparing pointer to 0, suggest !E")
-
-@script:python depends on org@
-p << t2.p2;
-@@
-
-coccilib.org.print_todo(p[0], "WARNING comparing pointer to 0")
-
-@script:python depends on report@
-p << t2.p1;
-@@
-
-coccilib.report.print_report(p[0], "WARNING comparing pointer to 0, suggest !E")
-
-@script:python depends on report@
-p << t2.p2;
-@@
-
-coccilib.report.print_report(p[0], "WARNING comparing pointer to 0")
-
-@ depends on patch disable is_zero,isnt_zero @
-expression *E;
-@@
-
-(
- E ==
-- 0
-+ NULL
-|
- E !=
-- 0
-+ NULL
-|
-- 0
-+ NULL
- == E
-|
-- 0
-+ NULL
- != E
-)
-
-@ t3 depends on !patch disable is_zero,isnt_zero @
-expression *E;
-position p;
-@@
-
-(
-* E == 0@p
-|
-* E != 0@p
-|
-* 0@p == E
-|
-* 0@p != E
-)
-
-@script:python depends on org@
-p << t3.p;
-@@
-
-coccilib.org.print_todo(p[0], "WARNING comparing pointer to 0")
-
-@script:python depends on report@
-p << t3.p;
-@@
-
-coccilib.report.print_report(p[0], "WARNING comparing pointer to 0")
diff --git a/ANDROID_3.4.5/scripts/coccinelle/null/deref_null.cocci b/ANDROID_3.4.5/scripts/coccinelle/null/deref_null.cocci
deleted file mode 100644
index cdac6cfc..00000000
--- a/ANDROID_3.4.5/scripts/coccinelle/null/deref_null.cocci
+++ /dev/null
@@ -1,282 +0,0 @@
-///
-/// A variable is dereference under a NULL test.
-/// Even though it is know to be NULL.
-///
-// Confidence: Moderate
-// Copyright: (C) 2010 Nicolas Palix, DIKU. GPLv2.
-// Copyright: (C) 2010 Julia Lawall, DIKU. GPLv2.
-// Copyright: (C) 2010 Gilles Muller, INRIA/LiP6. GPLv2.
-// URL: http://coccinelle.lip6.fr/
-// Comments: -I ... -all_includes can give more complete results
-// Options:
-
-virtual context
-virtual org
-virtual report
-
-@ifm@
-expression *E;
-statement S1,S2;
-position p1;
-@@
-
-if@p1 ((E == NULL && ...) || ...) S1 else S2
-
-// The following two rules are separate, because both can match a single
-// expression in different ways
-@pr1 expression@
-expression *ifm.E;
-identifier f;
-position p1;
-@@
-
- (E != NULL && ...) ? <+...E->f@p1...+> : ...
-
-@pr2 expression@
-expression *ifm.E;
-identifier f;
-position p2;
-@@
-
-(
- (E != NULL) && ... && <+...E->f@p2...+>
-|
- (E == NULL) || ... || <+...E->f@p2...+>
-|
- sizeof(<+...E->f@p2...+>)
-)
-
-// For org and report modes
-
-@r depends on !context && (org || report) exists@
-expression subE <= ifm.E;
-expression *ifm.E;
-expression E1,E2;
-identifier f;
-statement S1,S2,S3,S4;
-iterator iter;
-position p!={pr1.p1,pr2.p2};
-position ifm.p1;
-@@
-
-if@p1 ((E == NULL && ...) || ...)
-{
- ... when != if (...) S1 else S2
-(
- iter(subE,...) S4 // no use
-|
- list_remove_head(E2,subE,...)
-|
- subE = E1
-|
- for(subE = E1;...;...) S4
-|
- subE++
-|
- ++subE
-|
- --subE
-|
- subE--
-|
- &subE
-|
- E->f@p // bad use
-)
- ... when any
- return ...;
-}
-else S3
-
-@script:python depends on !context && !org && report@
-p << r.p;
-p1 << ifm.p1;
-x << ifm.E;
-@@
-
-msg="ERROR: %s is NULL but dereferenced." % (x)
-coccilib.report.print_report(p[0], msg)
-cocci.include_match(False)
-
-@script:python depends on !context && org && !report@
-p << r.p;
-p1 << ifm.p1;
-x << ifm.E;
-@@
-
-msg="ERROR: %s is NULL but dereferenced." % (x)
-msg_safe=msg.replace("[","@(").replace("]",")")
-cocci.print_main(msg_safe,p)
-cocci.include_match(False)
-
-@s depends on !context && (org || report) exists@
-expression subE <= ifm.E;
-expression *ifm.E;
-expression E1,E2;
-identifier f;
-statement S1,S2,S3,S4;
-iterator iter;
-position p!={pr1.p1,pr2.p2};
-position ifm.p1;
-@@
-
-if@p1 ((E == NULL && ...) || ...)
-{
- ... when != if (...) S1 else S2
-(
- iter(subE,...) S4 // no use
-|
- list_remove_head(E2,subE,...)
-|
- subE = E1
-|
- for(subE = E1;...;...) S4
-|
- subE++
-|
- ++subE
-|
- --subE
-|
- subE--
-|
- &subE
-|
- E->f@p // bad use
-)
- ... when any
-}
-else S3
-
-@script:python depends on !context && !org && report@
-p << s.p;
-p1 << ifm.p1;
-x << ifm.E;
-@@
-
-msg="ERROR: %s is NULL but dereferenced." % (x)
-coccilib.report.print_report(p[0], msg)
-
-@script:python depends on !context && org && !report@
-p << s.p;
-p1 << ifm.p1;
-x << ifm.E;
-@@
-
-msg="ERROR: %s is NULL but dereferenced." % (x)
-msg_safe=msg.replace("[","@(").replace("]",")")
-cocci.print_main(msg_safe,p)
-
-// For context mode
-
-@depends on context && !org && !report exists@
-expression subE <= ifm.E;
-expression *ifm.E;
-expression E1,E2;
-identifier f;
-statement S1,S2,S3,S4;
-iterator iter;
-position p!={pr1.p1,pr2.p2};
-position ifm.p1;
-@@
-
-if@p1 ((E == NULL && ...) || ...)
-{
- ... when != if (...) S1 else S2
-(
- iter(subE,...) S4 // no use
-|
- list_remove_head(E2,subE,...)
-|
- subE = E1
-|
- for(subE = E1;...;...) S4
-|
- subE++
-|
- ++subE
-|
- --subE
-|
- subE--
-|
- &subE
-|
-* E->f@p // bad use
-)
- ... when any
- return ...;
-}
-else S3
-
-// The following three rules are duplicates of ifm, pr1 and pr2 respectively.
-// It is need because the previous rule as already made a "change".
-
-@ifm1@
-expression *E;
-statement S1,S2;
-position p1;
-@@
-
-if@p1 ((E == NULL && ...) || ...) S1 else S2
-
-@pr11 expression@
-expression *ifm1.E;
-identifier f;
-position p1;
-@@
-
- (E != NULL && ...) ? <+...E->f@p1...+> : ...
-
-@pr12 expression@
-expression *ifm1.E;
-identifier f;
-position p2;
-@@
-
-(
- (E != NULL) && ... && <+...E->f@p2...+>
-|
- (E == NULL) || ... || <+...E->f@p2...+>
-|
- sizeof(<+...E->f@p2...+>)
-)
-
-@depends on context && !org && !report exists@
-expression subE <= ifm1.E;
-expression *ifm1.E;
-expression E1,E2;
-identifier f;
-statement S1,S2,S3,S4;
-iterator iter;
-position p!={pr11.p1,pr12.p2};
-position ifm1.p1;
-@@
-
-if@p1 ((E == NULL && ...) || ...)
-{
- ... when != if (...) S1 else S2
-(
- iter(subE,...) S4 // no use
-|
- list_remove_head(E2,subE,...)
-|
- subE = E1
-|
- for(subE = E1;...;...) S4
-|
- subE++
-|
- ++subE
-|
- --subE
-|
- subE--
-|
- &subE
-|
-* E->f@p // bad use
-)
- ... when any
-}
-else S3
diff --git a/ANDROID_3.4.5/scripts/coccinelle/null/eno.cocci b/ANDROID_3.4.5/scripts/coccinelle/null/eno.cocci
deleted file mode 100644
index ed961a1f..00000000
--- a/ANDROID_3.4.5/scripts/coccinelle/null/eno.cocci
+++ /dev/null
@@ -1,48 +0,0 @@
-/// The various basic memory allocation functions don't return ERR_PTR
-///
-// Confidence: High
-// Copyright: (C) 2010-2012 Nicolas Palix. GPLv2.
-// Copyright: (C) 2010-2012 Julia Lawall, INRIA/LIP6. GPLv2.
-// Copyright: (C) 2010-2012 Gilles Muller, INRIA/LiP6. GPLv2.
-// URL: http://coccinelle.lip6.fr/
-// Comments:
-// Options: -no_includes -include_headers
-
-virtual patch
-virtual context
-virtual org
-virtual report
-
-@depends on patch@
-expression x,E;
-@@
-
-x = \(kmalloc\|kzalloc\|kcalloc\|kmem_cache_alloc\|kmem_cache_zalloc\|kmem_cache_alloc_node\|kmalloc_node\|kzalloc_node\)(...)
-... when != x = E
-- IS_ERR(x)
-+ !x
-
-@r depends on !patch exists@
-expression x,E;
-position p1,p2;
-@@
-
-*x = \(kmalloc@p1\|kzalloc@p1\|kcalloc@p1\|kmem_cache_alloc@p1\|kmem_cache_zalloc@p1\|kmem_cache_alloc_node@p1\|kmalloc_node@p1\|kzalloc_node@p1\)(...)
-... when != x = E
-* IS_ERR@p2(x)
-
-@script:python depends on org@
-p1 << r.p1;
-p2 << r.p2;
-@@
-
-cocci.print_main("alloc call",p1)
-cocci.print_secs("IS_ERR that should be NULL tests",p2)
-
-@script:python depends on report@
-p1 << r.p1;
-p2 << r.p2;
-@@
-
-msg = "ERROR: allocation function on line %s returns NULL not ERR_PTR on failure" % (p1[0].line)
-coccilib.report.print_report(p2[0], msg)
diff --git a/ANDROID_3.4.5/scripts/coccinelle/null/kmerr.cocci b/ANDROID_3.4.5/scripts/coccinelle/null/kmerr.cocci
deleted file mode 100644
index 949bf656..00000000
--- a/ANDROID_3.4.5/scripts/coccinelle/null/kmerr.cocci
+++ /dev/null
@@ -1,72 +0,0 @@
-/// This semantic patch looks for kmalloc etc that are not followed by a
-/// NULL check. It only gives a report in the case where there is some
-/// error handling code later in the function, which may be helpful
-/// in determining what the error handling code for the call to kmalloc etc
-/// should be.
-///
-// Confidence: High
-// Copyright: (C) 2010 Nicolas Palix, DIKU. GPLv2.
-// Copyright: (C) 2010 Julia Lawall, DIKU. GPLv2.
-// Copyright: (C) 2010 Gilles Muller, INRIA/LiP6. GPLv2.
-// URL: http://coccinelle.lip6.fr/
-// Comments:
-// Options: -no_includes -include_headers
-
-virtual context
-virtual org
-virtual report
-
-@withtest@
-expression x;
-position p;
-identifier f,fld;
-@@
-
-x@p = f(...);
-... when != x->fld
-\(x == NULL \| x != NULL\)
-
-@fixed depends on context && !org && !report@
-expression x,x1;
-position p1 != withtest.p;
-statement S;
-position any withtest.p;
-identifier f;
-@@
-
-*x@p1 = \(kmalloc\|kzalloc\|kcalloc\)(...);
-...
-*x1@p = f(...);
-if (!x1) S
-
-// ------------------------------------------------------------------------
-
-@rfixed depends on (org || report) && !context exists@
-expression x,x1;
-position p1 != withtest.p;
-position p2;
-statement S;
-position any withtest.p;
-identifier f;
-@@
-
-x@p1 = \(kmalloc\|kzalloc\|kcalloc\)(...);
-...
-x1@p = f@p2(...);
-if (!x1) S
-
-@script:python depends on org@
-p1 << rfixed.p1;
-p2 << rfixed.p2;
-@@
-
-cocci.print_main("alloc call",p1)
-cocci.print_secs("possible model",p2)
-
-@script:python depends on report@
-p1 << rfixed.p1;
-p2 << rfixed.p2;
-@@
-
-msg = "alloc with no test, possible model on line %s" % (p2[0].line)
-coccilib.report.print_report(p1[0],msg)
diff --git a/ANDROID_3.4.5/scripts/coccinelle/tests/doublebitand.cocci b/ANDROID_3.4.5/scripts/coccinelle/tests/doublebitand.cocci
deleted file mode 100644
index 9ba73d05..00000000
--- a/ANDROID_3.4.5/scripts/coccinelle/tests/doublebitand.cocci
+++ /dev/null
@@ -1,54 +0,0 @@
-/// Find bit operations that include the same argument more than once
-//# One source of false positives is when the argument performs a side
-//# effect. Another source of false positives is when a neutral value
-//# such as 0 for | is used to indicate no information, to maintain the
-//# same structure as other similar expressions
-///
-// Confidence: Moderate
-// Copyright: (C) 2010 Nicolas Palix, DIKU. GPLv2.
-// Copyright: (C) 2010 Julia Lawall, DIKU. GPLv2.
-// Copyright: (C) 2010 Gilles Muller, INRIA/LiP6. GPLv2.
-// URL: http://coccinelle.lip6.fr/
-// Comments:
-// Options: -no_includes -include_headers
-
-virtual context
-virtual org
-virtual report
-
-@r expression@
-expression E;
-position p;
-@@
-
-(
-* E@p
- & ... & E
-|
-* E@p
- | ... | E
-|
-* E@p
- & ... & !E
-|
-* E@p
- | ... | !E
-|
-* !E@p
- & ... & E
-|
-* !E@p
- | ... | E
-)
-
-@script:python depends on org@
-p << r.p;
-@@
-
-cocci.print_main("duplicated argument to & or |",p)
-
-@script:python depends on report@
-p << r.p;
-@@
-
-coccilib.report.print_report(p[0],"duplicated argument to & or |")
diff --git a/ANDROID_3.4.5/scripts/coccinelle/tests/doubletest.cocci b/ANDROID_3.4.5/scripts/coccinelle/tests/doubletest.cocci
deleted file mode 100644
index 13a2c0e8..00000000
--- a/ANDROID_3.4.5/scripts/coccinelle/tests/doubletest.cocci
+++ /dev/null
@@ -1,40 +0,0 @@
-/// Find &&/|| operations that include the same argument more than once
-//# A common source of false positives is when the argument performs a side
-//# effect.
-///
-// Confidence: Moderate
-// Copyright: (C) 2010 Nicolas Palix, DIKU. GPLv2.
-// Copyright: (C) 2010 Julia Lawall, DIKU. GPLv2.
-// Copyright: (C) 2010 Gilles Muller, INRIA/LiP6. GPLv2.
-// URL: http://coccinelle.lip6.fr/
-// Comments:
-// Options: -no_includes -include_headers
-
-virtual context
-virtual org
-virtual report
-
-@r expression@
-expression E;
-position p;
-@@
-
-(
-* E@p
- || ... || E
-|
-* E@p
- && ... && E
-)
-
-@script:python depends on org@
-p << r.p;
-@@
-
-cocci.print_main("duplicated argument to && or ||",p)
-
-@script:python depends on report@
-p << r.p;
-@@
-
-coccilib.report.print_report(p[0],"duplicated argument to && or ||")