Author: Julia Lawall <julia@diku.dk> Use memdup_user when user data is immediately copied into the allocated region. The semantic patch that makes this change is as follows: (http://coccinelle.lip6.fr/) // @@ expression from,to,size,flag; position p; identifier l1,l2; @@ – to = \(kmalloc@p\|kzalloc@p\)(size,flag); + to = memdup_user(from,size); if ( – to==NULL + IS_ERR(to) || …) { } – …
Catégorie : Linux
Aug 11 2010
drivers/scsi/aic94xx/aic94xx_init.c: correct the size argument to kmalloc
Author: Julia Lawall <julia@diku.dk> In each case, the destination of the allocation has type struct **, so the elements of the array should have pointer type, not structure type. The semantic patch that makes this change is as follows: (http://coccinelle.lip6.fr/) // @disable sizeof_type_expr@ type T; T **x; @@ x = // Signed-off-by: Julia Lawall Cc: …
Aug 11 2010
drivers/message: move dereference after NULL test
Author: Julia Lawall <julia@diku.dk> If the NULL test on dev->i2o_dev or i2o_dev is needed, then the dereference should be after the NULL test. A simplified version of the semantic match that detects this problem is as follows (http://coccinelle.lip6.fr/): // @match exists@ expression x, E; identifier fld; @@ * x->fld … when != \(x = E\|&x\) …
Aug 11 2010
drivers/scsi: remove unnecessary NULL test
Author: Julia Lawall <julia@diku.dk> At the point where cmnd is initialized, it is tested for NULL, so it doesn’t have to be tested again here. A simplified version of the semantic match that detects this problem is as follows (http://coccinelle.lip6.fr/): // @match exists@ expression x, E; identifier fld; @@ * x->fld … when != \(x …
Aug 10 2010
mm: use ERR_CAST
Author: Julia Lawall <julia@diku.dk> Use ERR_CAST(x) rather than ERR_PTR(PTR_ERR(x)). The former makes more clear what is the purpose of the operation, which otherwise looks like a no-op. The semantic patch that makes this change is as follows: (http://coccinelle.lip6.fr/) // @@ type T; T x; identifier f; @@ T f (…) { } @@ expression x; …
Aug 10 2010
mm: use memdup_user
Author: Julia Lawall <julia@diku.dk> Use memdup_user when user data is immediately copied into the allocated region. The semantic patch that makes this change is as follows: (http://coccinelle.lip6.fr/) // @@ expression from,to,size,flag; position p; identifier l1,l2; @@ – to = \(kmalloc@p\|kzalloc@p\)(size,flag); + to = memdup_user(from,size); if ( – to==NULL + IS_ERR(to) || …) { } – …
Aug 07 2010
UBI: eliminate update of list_for_each_entry loop cursor
Author: Julia Lawall <julia@diku.dk> list_for_each_entry uses its first argument to move from one element to the next, so modifying it can break the iteration. The variable re1 is already used within the loop as a temporary variable, and is not live here. The semantic match that finds this problem is as follows: (http://coccinelle.lip6.fr/) // @r@ …
Aug 07 2010
fs/ecryptfs/file.c: introduce missing free
Author: Julia Lawall <julia@diku.dk> The comments in the code indicate that file_info should be released if the function fails. This releasing is done at the label out_free, not out. The semantic match that finds this problem is as follows: (http://www.emn.fr/x-info/coccinelle/) // @r exists@ local idexpression x; statement S; expression E; identifier f,f1,l; position p1,p2; expression …
Aug 06 2010
of/device: Replace struct of_device with struct platform_device
Author: Grant Likely <grant.likely@secretlab.ca> of_device is just an alias for platform_device, so remove it entirely. Also replace to_of_device() with to_platform_device() and update comment blocks. This patch was initially generated from the following semantic patch, and then edited by hand to pick up the bits that coccinelle didn’t catch. @@ @@ -struct of_device +struct platform_device Signed-off-by: …
Aug 06 2010
[media] drivers/media/video/bt8xx: Adjust confusing if indentation
Author: Julia Lawall <julia@diku.dk> Indent the branch of an if. The semantic match that finds this problem is as follows: (http://coccinelle.lip6.fr/) // @r disable braces4@ position p1,p2; statement S1,S2; @@ ( if (…) { … } | if (…) S1@p1 S2@p2 ) @script:python@ p1