Re: [PATCH] coccinelle: api: add kzfree script

From: Markus Elfring
Date: Thu Jun 04 2020 - 11:21:23 EST


> 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