Message ID | Pine.LNX.4.64.0907281752560.28189@ask.diku.dk (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On 07/28/2009 06:53 PM, Julia Lawall wrote: > From: Julia Lawall<julia@diku.dk> > > This code is not executed before file has been initialized to the result of > calling eventfd_fget. This function returns an ERR_PTR value in an error > case instead of NULL. Thus the test that file is not NULL is always true. > > A simplified version of the semantic match that finds this problem is as > follows: (http://coccinelle.lip6.fr/) > > //<smpl> > @match exists@ > expression x, E; > statement S1, S2; > @@ > > x = eventfd_fget(...) > ... when != x = E > ( > * if (x == NULL || ...) S1 else S2 > | > * if (x == NULL&& ...) S1 else S2 > ) > //</smpl> > > Applied, thanks (yes, old patch, missed it).
diff --git a/virt/kvm/eventfd.c b/virt/kvm/eventfd.c index 99017e8..bb4ebd8 100644 --- a/virt/kvm/eventfd.c +++ b/virt/kvm/eventfd.c @@ -230,7 +230,7 @@ fail: if (eventfd && !IS_ERR(eventfd)) eventfd_ctx_put(eventfd); - if (file && !IS_ERR(file)) + if (!IS_ERR(file)) fput(file); kfree(irqfd);