• Jeff Layton's avatar
    NFS: don't try to decode GETATTR if DELEGRETURN returned error · 556ae3bb
    Jeff Layton authored
    The reply parsing code attempts to decode the GETATTR response even if
    the DELEGRETURN portion of the compound returned an error. The GETATTR
    response won't actually exist if that's the case and we're asking the
    parser to read past the end of the response.
    
    This bug is fairly benign. The parser catches this without reading past
    the end of the response and decode_getfattr returns -EIO. Earlier
    kernels however had decode_op_hdr using the READ_BUF macro, and this
    bug would make this printk pop any time the client got an error from
    a delegreturn:
    
    kernel: decode_op_hdr: reply buffer overflowed in line XXXX
    
    More recent kernels seem to have replaced this printk with a dprintk.
    Signed-off-by: default avatarJeff Layton <jlayton@redhat.com>
    Signed-off-by: default avatarTrond Myklebust <Trond.Myklebust@netapp.com>
    556ae3bb
nfs4xdr.c 154 KB