lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <14411.1558047621@warthog.procyon.org.uk>
Date:   Fri, 17 May 2019 00:00:21 +0100
From:   David Howells <dhowells@...hat.com>
To:     torvalds@...ux-foundation.org
Cc:     Marc Dionne <marc.dionne@...istor.com>,
        Jonathan Billings <jsbillings@...illings.org>,
        Peter Zijlstra <peterz@...radead.org>,
        Joe Perches <joe@...ches.com>,
        Colin Ian King <colin.king@...onical.com>,
        dhowells@...hat.com, linux-afs@...ts.infradead.org,
        linux-kernel@...r.kernel.org
Subject: [GIT PULL] afs: Miscellaneous fixes

Hi Linus,

Could you pull this series please?  It fixes a set of miscellaneous issues
in the afs filesystem, including:

 (1) Leak of keys on file close.

 (2) Broken error handling in xattr functions.

 (3) Missing locking when updating VL server list.

 (4) Volume location server DNS lookup whereby preloaded cells may not ever
     get a lookup and regular DNS lookups to maintain server lists consume
     power unnecessarily.

 (5) Incorrect error propagation and handling in the fileserver iteration
     code causes operations to sometimes apparently succeed.

 (6) Interruption of server record check/update side op during fileserver
     iteration causes uninterruptible main operations to fail unexpectedly.

 (7) Callback promise expiry time miscalculation.

 (8) Over invalidation of the callback promise on directories.

 (9) Double locking on callback break waking up file locking waiters.

(10) Double increment of the vnode callback break counter.

Note that it makes some changes outside of the afs code, including:

 (A) Adding an extra parameter to dns_query() to allow the dns_resolver key
     just accessed to be immediately invalidated.  AFS is caching the
     results itself, so the key can be discarded.

 (B) Adding an interruptible version of wait_var_event().

 (C) Adding an rxrpc function to allow the maximum lifespan to be set on a
     call.

 (D) Adding a way for an rxrpc call to be marked as non-interruptible.

Signed-off-by: David Howells <dhowells@...hat.com>
Tested-by: Marc Dionne <marc.dionne@...istor.com>
---
The following changes since commit 80f232121b69cc69a31ccb2b38c1665d770b0710:

  Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next (2019-05-07 22:03:58 -0700)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs.git tags/afs-fixes-20190516

for you to fetch changes up to fd711586bb7d63f257da5eff234e68c446ac35ea:

  afs: Fix double inc of vnode->cb_break (2019-05-16 16:25:21 +0100)

----------------------------------------------------------------
AFS fixes

----------------------------------------------------------------
David Howells (19):
      afs: Fix key leak in afs_release() and afs_evict_inode()
      afs: Fix incorrect error handling in afs_xattr_get_acl()
      afs: Fix afs_xattr_get_yfs() to not try freeing an error value
      afs: Fix missing lock when replacing VL server list
      afs: Fix afs_cell records to always have a VL server list record
      dns_resolver: Allow used keys to be invalidated
      Add wait_var_event_interruptible()
      afs: Fix cell DNS lookup
      afs: Fix "kAFS: AFS vnode with undefined type 0"
      rxrpc: Provide kernel interface to set max lifespan on a call
      afs: Fix the maximum lifespan of VL and probe calls
      afs: Fix error propagation from server record check/update
      rxrpc: Allow the kernel to mark a call as being non-interruptible
      afs: Make some RPC operations non-interruptible
      afs: Make dynamic root population wait uninterruptibly for proc_cells_lock
      afs: Fix calculation of callback expiry time
      afs: Don't invalidate callback if AFS_VNODE_DIR_VALID not set
      afs: Fix lock-wait/callback-break double locking
      afs: Fix double inc of vnode->cb_break

 Documentation/networking/rxrpc.txt |  21 ++++-
 fs/afs/addr_list.c                 |   2 +-
 fs/afs/afs.h                       |   3 +
 fs/afs/callback.c                  |   8 +-
 fs/afs/cell.c                      | 187 ++++++++++++++++++++++---------------
 fs/afs/dir.c                       |  18 ++--
 fs/afs/dir_silly.c                 |   4 +-
 fs/afs/dynroot.c                   |   5 +-
 fs/afs/file.c                      |   9 +-
 fs/afs/flock.c                     |   9 +-
 fs/afs/fsclient.c                  |  77 +++++++++------
 fs/afs/inode.c                     |  12 +--
 fs/afs/internal.h                  |  22 +++--
 fs/afs/proc.c                      |   8 +-
 fs/afs/rotate.c                    |  29 ++++--
 fs/afs/rxrpc.c                     |   7 +-
 fs/afs/security.c                  |   4 +-
 fs/afs/server.c                    |  17 +++-
 fs/afs/super.c                     |   2 +-
 fs/afs/vl_list.c                   |  20 ++--
 fs/afs/vl_rotate.c                 |  28 +++++-
 fs/afs/vlclient.c                  |   4 +
 fs/afs/write.c                     |   2 +-
 fs/afs/xattr.c                     | 103 ++++++++++----------
 fs/afs/yfsclient.c                 |  98 +++++++++----------
 fs/cifs/dns_resolve.c              |   2 +-
 fs/nfs/dns_resolve.c               |   2 +-
 include/linux/dns_resolver.h       |   3 +-
 include/linux/wait_bit.h           |  13 +++
 include/net/af_rxrpc.h             |   3 +
 net/ceph/messenger.c               |   2 +-
 net/dns_resolver/dns_query.c       |   6 +-
 net/rxrpc/af_rxrpc.c               |  28 ++++++
 net/rxrpc/ar-internal.h            |   2 +
 net/rxrpc/call_object.c            |   2 +
 net/rxrpc/conn_client.c            |   8 +-
 net/rxrpc/sendmsg.c                |   4 +-
 37 files changed, 478 insertions(+), 296 deletions(-)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ