diff options
Diffstat (limited to 'ANDROID_3.4.5/scripts/coccinelle/api')
10 files changed, 0 insertions, 777 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)) |