1. 20 Sep, 2019 2 commits
    • Benjamin Coddington's avatar
      SUNRPC: Rename xdr_buf_read_netobj to xdr_buf_read_mic · f925ab92
      Benjamin Coddington authored
      Let the name reflect the single use.  The function now assumes the GSS MIC
      is the last object in the buffer.
      Signed-off-by: default avatarBenjamin Coddington <bcodding@redhat.com>
      Signed-off-by: default avatarAnna Schumaker <Anna.Schumaker@Netapp.com>
      f925ab92
    • Benjamin Coddington's avatar
      SUNRPC: Fix buffer handling of GSS MIC without slack · 5f1bc399
      Benjamin Coddington authored
      The GSS Message Integrity Check data for krb5i may lie partially in the XDR
      reply buffer's pages and tail.  If so, we try to copy the entire MIC into
      free space in the tail.  But as the estimations of the slack space required
      for authentication and verification have improved there may be less free
      space in the tail to complete this copy -- see commit 2c94b8ec
      ("SUNRPC: Use au_rslack when computing reply buffer size").  In fact, there
      may only be room in the tail for a single copy of the MIC, and not part of
      the MIC and then another complete copy.
      
      The real world failure reported is that `ls` of a directory on NFS may
      sometimes return -EIO, which can be traced back to xdr_buf_read_netobj()
      failing to find available free space in the tail to copy the MIC.
      
      Fix this by checking for the case of the MIC crossing the boundaries of
      head, pages, and tail. If so, shift the buffer until the MIC is contained
      completely within the pages or tail.  This allows the remainder of the
      function to create a sub buffer that directly address the complete MIC.
      Signed-off-by: default avatarBenjamin Coddington <bcodding@redhat.com>
      Cc: stable@vger.kernel.org # v5.1
      Reviewed-by: default avatarChuck Lever <chuck.lever@oracle.com>
      Signed-off-by: default avatarAnna Schumaker <Anna.Schumaker@Netapp.com>
      5f1bc399
  2. 17 Sep, 2019 3 commits
  3. 26 Aug, 2019 3 commits
  4. 22 Aug, 2019 6 commits
  5. 21 Aug, 2019 8 commits
  6. 20 Aug, 2019 15 commits
  7. 18 Aug, 2019 3 commits