• Julia Lawall's avatar
    KVM: correct error-handling code · 6223011f
    Julia Lawall authored
    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>
    Signed-off-by: default avatarJulia Lawall <julia@diku.dk>
    Signed-off-by: default avatarAvi Kivity <avi@redhat.com>
    6223011f
eventfd.c 13.2 KB