> Check for memset() with 0 followed by kfree(). I suggest to simplify the SmPL code a bit like the following. > +virtual context > +virtual org > +virtual report > +virtual patch +virtual context, org, report, patch … > +@@ > + > +( > +* memset(E, 0, ...); > +| > +* memset(E, '\0', ...); > +) > +* kfree(E)@p; +@@ +*memset(E, 0, ...); +*kfree(E)@p; How does the SmPL asterisk functionality fit to the operation modes “org” and “report”? > +@@ > + > +( > +- memset(E, 0, ...); > +| > +- memset(E, '\0', ...); > +) > +- kfree(E); > ++ kzfree(E); +@@ +-memset(E, 0, ...); +-kfree ++kzfree + (E); I got the impression that the specification of a SmPL disjunction could be omitted because of the technical detail that the isomorphism “zero_multiple_format” should handle such an use case already. Would you like to tolerate any extra source code between these function calls? Regards, Markus