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)