From: Kees Cook <kees@kernel.org>
To: Julia Lawall <Julia.Lawall@inria.fr>
Cc: cocci@inria.fr
Subject: Re: [cocci] __free() attribute inhibits matching?
Date: Tue, 18 Mar 2025 20:31:27 -0700 [thread overview]
Message-ID: <202503182023.D7C4D91@keescook> (raw)
In-Reply-To: <F7BB5789-F9F2-4D17-986A-AD7BC976F18B@inria.fr>
On Tue, Mar 18, 2025 at 06:56:40PM +0100, Julia Lawall wrote:
> I think you want
>
> Expression *m;
>
> A->@m b
>
> B would be an identifier
But how does "B" get correctly type restricted? (Or in my example,
"NAME"?)
I tried:
@direct depends on !(file in "tools") && !(file in "samples")@
type TYPE;
TYPE *P;
TYPE *MEMBER;
TYPE INST;
identifier NAME;
expression COMP;
identifier ALLOC =~ "^kv?[mz]alloc";
fresh identifier ALLOC_OBJ = ALLOC ## "_obj";
@@
\(\(P\|COMP.@MEMBER NAME\|COMP->@MEMBER NAME\) \& VAR\)
- = ALLOC((\(sizeof(*VAR)\|sizeof(TYPE)\|sizeof(INST)\)), GFP);
+ = ALLOC_OBJ(*VAR, GFP);
This parses, but don't match (from crypto/asymmetric_keys/x509_cert_parser.c):
cert->pub = kzalloc(sizeof(struct public_key), GFP_KERNEL);
But does match (via "P"):
cert = kzalloc(sizeof(struct x509_certificate), GFP_KERNEL);
/me continues to scratch head
--
Kees Cook
next prev parent reply other threads:[~2025-03-19 9:29 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-03-17 18:44 [cocci] __free() attribute inhibits matching? Kees Cook
2025-03-17 20:59 ` Julia Lawall
2025-03-17 23:02 ` Kees Cook
2025-03-17 23:13 ` Julia Lawall
2025-03-18 15:39 ` Kees Cook
2025-03-18 15:43 ` Julia Lawall
2025-03-18 16:30 ` Kees Cook
2025-03-18 17:56 ` Julia Lawall
2025-03-19 3:31 ` Kees Cook [this message]
2025-03-19 5:55 ` Julia Lawall
2025-03-19 7:20 ` [cocci] Checking the determination of type information? Markus Elfring
2025-03-19 7:44 ` [cocci] __free() attribute inhibits matching? Julia Lawall
2025-03-19 20:06 ` Kees Cook
2025-03-19 21:30 ` Kees Cook
2025-03-19 23:25 ` Julia Lawall
2025-03-21 13:52 ` Markus Elfring
2025-03-19 10:24 ` Markus Elfring
2025-03-19 10:57 ` Markus Elfring
2025-03-18 17:43 ` Markus Elfring
2025-03-18 18:02 ` Kees Cook
2025-03-18 19:18 ` Markus Elfring
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202503182023.D7C4D91@keescook \
--to=kees@kernel.org \
--cc=Julia.Lawall@inria.fr \
--cc=cocci@inria.fr \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.