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
_______________________________________________
Cocci mailing list
[email protected]
https://systeme.lip6.fr/mailman/listinfo/cocci

Reply via email to