1 /// Use kstrdup rather than duplicating its implementation
4 // Copyright: (C) 2010 Nicolas Palix, DIKU. GPLv2.
5 // Copyright: (C) 2010 Julia Lawall, DIKU. GPLv2.
6 // Copyright: (C) 2010 Gilles Muller, INRIA/LiP6. GPLv2.
7 // URL: http://coccinelle.lip6.fr/
9 // Options: -no_includes -include_headers
15 expression flag,E1,E2;
19 - to = kmalloc(strlen(from) + 1,flag);
20 + to = kstrdup(from, flag);
21 ... when != \(from = E1 \| to = E1 \)
22 if (to==NULL || ...) S
23 ... when != \(from = E2 \| to = E2 \)
28 expression flag,E1,E2,E3;
32 - x = strlen(from) + 1;
33 ... when != \( x = E1 \| from = E1 \)
34 - to = \(kmalloc\|kzalloc\)(x,flag);
35 + to = kstrdup(from, flag);
36 ... when != \(x = E2 \| from = E2 \| to = E2 \)
37 if (to==NULL || ...) S
38 ... when != \(x = E3 \| from = E3 \| to = E3 \)
39 - memcpy(to, from, x);