Messages in this thread | | | Subject | Re: [PATCH v3 2/3] coccinelle: api: extend memdup_user rule with vmemdup_user() | From | Markus Elfring <> | Date | Wed, 22 Jul 2020 07:50:49 +0200 |
| |
>>> +@depends on patch@ >>> +expression from,to,size; >>> +identifier l1,l2; >>> +@@ >>> + >>> +- to = \(kvmalloc\|kvzalloc\)(size,\(GFP_KERNEL\|GFP_USER\)); >>> ++ to = vmemdup_user(from,size); >> >> I propose to combine the desired adjustment with the previous SmPL rule >> by using another disjunction.
How do you think about to check run time characteristics for the following SmPL script sketches?
A) @R1@ @@ // Change something
@R2@ @@ // Change another thing
B) @Replacement_with_disjunction@ @@ ( // R1: Change something | // R2: Change another thing )
>>> +@rv depends on !patch@ >>> +expression from,to,size; >>> +position p; >>> +statement S1,S2; >>> +@@ >>> + >>> +* to = \(kvmalloc@p\|kvzalloc@p\)(size,\(GFP_KERNEL\|GFP_USER\)); >>> + if (to==NULL || ...) S1 >>> + if (copy_from_user(to, from, size) != 0) >>> + S2 >> >> * Can it be helpful to omit the SmPL asterisk functionality from >> the operation modes “org” and “report”? >> >> * Should the operation mode “context” work without an extra position metavariable? > > This is fine as is in all three aspects.
Is every technique from the Coccinelle software required for each operation mode in such data processing approaches?
Regards, Markus
| |