cocci seems to think that sizeof("quoted string")
is sizeof(*), not sizeof(char array).

Given inputs of:

$ cat memcpy_ptr.cocci
@@
type T;
T* ptr;
expression E1;
expression E2;
@@

* memcpy(E1, E2, sizeof(ptr));
$

and file:

$ cat t.c
#include <string.h>

int main(int argc, char** argv)
{
        char    bar[100];

        memcpy(bar, "ABCDEFG", sizeof("ABCDEFG"));
}

$

cocci matches:

$ spatch -sp_file memcpy_pointer.cocci t.c
init_defs_builtins: /usr/local/share/coccinelle/standard.h
HANDLING: t.c
diff = 
--- t.c 2011-05-09 09:41:37.000000000 -0700
+++ /tmp/cocci-output-8327-a04f0c-t.c   2011-05-09 09:44:07.000000000 -0700
@@ -6,7 +6,5 @@ int main(int argc, char** argv)
 {
        char    bar[100];
 
-       memcpy(bar, "ABCDEFG", sizeof("ABCDEFG"));
        return 0;
 }



_______________________________________________
Cocci mailing list
[email protected]
http://lists.diku.dk/mailman/listinfo/cocci
(Web access from inside DIKUs LAN only)

Reply via email to