On Tue, 21 Jan 2014, 林嘉(程二 福州) wrote:
> Following is a code with bug
>
> -----------------------------------
> void set_timeout_value(int iParam)
> {
> int i;
> byte b[100];
> i = Geti();
> if (i > 100 || i < 0){
> return ;
> }
> b[i] = iParam; /* range of I is 0-100,so may overrun array* /
>
> }
> -----------------------------------
> Now I write a patch to find it, like this
>
> @@
> identifier fn, vp;
> identifier I;
> type T;
> expression C;
> @@
> -fn(...,int vp,...)
> -{
> -T I[C];
> -<+...
> -if(vp > C || ...){
> -...
> -}
> -...+>
> -}
>
>
> But it doesn’t work, give me a log:
> rule starting on line 1: position variables or mixed modifs interfere with
> comm_assoc isobool (bool (int vp > int C) || ...)
>
> can anyone tell why, thanks
I tried the above code exactly, and I didn't get the problem.
I also tried removing int i; and changing i > 100 to iParam > 100, and
then it was able to remove the function definition.
julia
_______________________________________________
Cocci mailing list
[email protected]
https://systeme.lip6.fr/mailman/listinfo/cocci