On 1/11/21 11:23 PM, Julia Lawall wrote:
>
>
> On Mon, 11 Jan 2021, Denis Efremov wrote:
>
>> Hi,
>>
>> Let's suppose I want to match otx_cpt_aead_cbc_aes_sha_setkey() function from
>> drivers/crypto/marvell/octeontx/otx_cptvf_algs.c file (linux kernel).
>>
>> My pattern:
>> @exists@
>> identifier rta, param, key, keylen;
>> position p;
>> @@
>>
>> otx_cpt_aead_cbc_aes_sha_setkey(...,
>> unsigned char *key, unsigned int keylen)
>> {
>> ...
>> * if (RTA_PAYLOAD(rta) < sizeof(*param))@p
>> goto badkey;
>> ...
>> * key += RTA_ALIGN(rta->rta_len);
>> * keylen -= RTA_ALIGN(rta->rta_len);
>> ...
>> }
>>
>> $ spatch --no-includes --include-headers --cocci-file test.cocci
>> drivers/crypto/marvell/octeontx/otx_cptvf_algs.c
>> init_defs_builtins: /usr/lib64/coccinelle/standard.h
>> minus: parse error:
>> File "test.cocci", line 13, column 9, charpos = 219
>> around = 'RTA_ALIGN',
>> whole content = * key += RTA_ALIGN(rta->rta_len);
>>
>>
>> What can I do to match RTA_ALIGN(...) lines?
>
> I don't understand the problem. I took your rule and your command line,
> and everything was fine.
I use version:
spatch version 1.0.8-gc1dbb4f-dirty compiled with OCaml version 4.11.1
Flags passed to the configure script: --build=x86_64-redhat-linux-gnu
--host=x86_64-redhat-linux-gnu --program-prefix= --disable-dependency-tracking
--prefix=/usr --exec-prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin
--sysconfdir=/etc --datadir=/usr/share --includedir=/usr/include
--libdir=/usr/lib64 --libexecdir=/usr/libexec --localstatedir=/var
--sharedstatedir=/var/lib --mandir=/usr/share/man --infodir=/usr/share/info
--with-python=/usr/bin/python3 --with-menhir=/usr/bin/menhir
OCaml scripting support: yes
Python scripting support: yes
Syntax of regular expressions: PCRE
Maybe parsing error is fixed in new versions?
_______________________________________________
Cocci mailing list
Cocci@systeme.lip6.fr
https://systeme.lip6.fr/mailman/listinfo/cocci