On Tue, 21 Jul 2020, Markus Elfring wrote: > … > > +++ b/scripts/coccinelle/api/memdup_user.cocci > > @@ -39,6 +39,28 @@ … > … > > +@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. > > > > +@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. julia