Re: [PATCH] coccinelle: misc: Add array_size_dup script to detect missed overflow checks

From: Markus Elfring
Date: Wed Jun 17 2020 - 10:36:29 EST


I propose once more to avoid a typo in the previous patch subject.


â
> (
> - size = E1 * E2;
> + size = array_size(E1, E2);
> |
> - size = E1 * E2 * E3;
> + size = array3_size(E1, E2, E3);
> |
> - size = E1 * E2 + E3;
> + size = struct_size(E1, E2, E3);
> )

How do you think about to use SmPL disjunctions like the following?

size =
(
- (E1) * (E2)
+ array_size(E1, E2)
|
- (E1) * (E2) * (E3)
+ array3_size(E1, E2, E3)
|
- (E1) * (E2) + (E3)
+ struct_size(E1, E2, E3)
);


> ... when != size = E4
> when != size += E4
â

Can it become helpful to express a constraint for a metavariable of
the type âassignment operatorâ?


> (
> * size = E1 * E2;@p
> |
> * size = E1 * E2 * E3;@p
> |
> * size = E1 * E2 + E3;@p
> )

*size =@p \( (E1) * (E2) \| (E1) * (E2) * (E3) \| (E1) * (E2) + (E3) \)

Regards,
Markus