From: Markus Elfring <elfr...@users.sourceforge.net> Date: Sun, 9 Aug 2020 11:11:20 +0200
Another patch rule was added. A bit of code was copied from a previous SmPL rule for this change specification. * Thus reduce duplicate code by using another SmPL disjunction. * Increase the precision a bit for desired source code adjustments. Fixes: 9c568dbd677bcfc975220d3157c89c48669a23e3 ("coccinelle: api: extend memdup_user rule with vmemdup_user()") Signed-off-by: Markus Elfring <elfr...@users.sourceforge.net> --- scripts/coccinelle/api/memdup_user.cocci | 44 +++++++++--------------- 1 file changed, 16 insertions(+), 28 deletions(-) diff --git a/scripts/coccinelle/api/memdup_user.cocci b/scripts/coccinelle/api/memdup_user.cocci index e01e95108405..7cf698b4e925 100644 --- a/scripts/coccinelle/api/memdup_user.cocci +++ b/scripts/coccinelle/api/memdup_user.cocci @@ -27,34 +27,22 @@ expression from,to,size; identifier l1,l2; position p : script:python() { relevant(p) }; @@ - -- to = \(kmalloc@p\|kzalloc@p\) -- (size,\(GFP_KERNEL\|GFP_USER\| -- \(GFP_KERNEL\|GFP_USER\)|__GFP_NOWARN\)); -+ 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 -- ...+> -- } - -@depends on patch@ -expression from,to,size; -identifier l1,l2; -position p : script:python() { relevant(p) }; -@@ - -- to = \(kvmalloc@p\|kvzalloc@p\)(size,\(GFP_KERNEL\|GFP_USER\)); -+ to = vmemdup_user(from,size); + to = +( +- \(kmalloc@p\|kzalloc@p\) ++ memdup_user + ( +- size, \( \(GFP_KERNEL\|GFP_USER\) \| \(GFP_KERNEL\|GFP_USER\)|__GFP_NOWARN \) ++ from, size + ) +| +- \(kvmalloc@p\|kvzalloc@p\) ++ vmemdup_user + ( +- size, \(GFP_KERNEL\|GFP_USER\) ++ from, size + ) +); if ( - to==NULL + IS_ERR(to) -- 2.28.0 _______________________________________________ Cocci mailing list Cocci@systeme.lip6.fr https://systeme.lip6.fr/mailman/listinfo/cocci