Skip to content
  • Frank Sorenson's avatar
    sunrpc: correct the computation for page_ptr when truncating · 5d7a5bcb
    Frank Sorenson authored
    
    
    When truncating the encode buffer, the page_ptr is getting
    advanced, causing the next page to be skipped while encoding.
    The page is still included in the response, so the response
    contains a page of bogus data.
    
    We need to adjust the page_ptr backwards to ensure we encode
    the next page into the correct place.
    
    We saw this triggered when concurrent directory modifications caused
    nfsd4_encode_direct_fattr() to return nfserr_noent, and the resulting
    call to xdr_truncate_encode() corrupted the READDIR reply.
    
    Signed-off-by: default avatarFrank Sorenson <sorenson@redhat.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: default avatarJ. Bruce Fields <bfields@redhat.com>
    5d7a5bcb