1654a04cd702fd19c297c36300a6ab834cf8c072 |
|
04-Jan-2014 |
Jeff Layton <jlayton@redhat.com> |
sunrpc: don't wait for write before allowing reads from use-gss-proxy file It doesn't make much sense to make reads from this procfile hang. As far as I can tell, only gssproxy itself will open this file and it never reads from it. Change it to just give the present setting of sn->use_gss_proxy without waiting for anything. Note that we do not want to call use_gss_proxy() in this codepath since an inopportune read of this file could cause it to be disabled prematurely. Cc: stable@vger.kernel.org Signed-off-by: Jeff Layton <jlayton@redhat.com> Signed-off-by: J. Bruce Fields <bfields@redhat.com>
|
c66080ad0a9295eaf0246a46949619f92c75faaa |
|
08-Oct-2013 |
J. Bruce Fields <bfields@redhat.com> |
svcrpc: fix gss-proxy NULL dereference in some error cases We depend on the xdr decoder to set this pointer, but if we error out before we decode this piece it could be left NULL. I think this is probably tough to hit without a buggy gss-proxy. Reported-by: Andi Kleen <andi@firstfloor.org> Cc: Simo Sorce <simo@redhat.com> Signed-off-by: J. Bruce Fields <bfields@redhat.com>
|
d4a516560fc96a9d486a9939bcb567e3fdce8f49 |
|
23-Aug-2013 |
J. Bruce Fields <bfields@redhat.com> |
rpc: let xdr layer allocate gssproxy receieve pages In theory the linux cred in a gssproxy reply can include up to NGROUPS_MAX data, 256K of data. In the common case we expect it to be shorter. So do as the nfsv3 ACL code does and let the xdr code allocate the pages as they come in, instead of allocating a lot of pages that won't typically be used. Tested-by: Simo Sorce <simo@redhat.com> Signed-off-by: J. Bruce Fields <bfields@redhat.com>
|
9dfd87da1aeb0fd364167ad199f40fe96a6a87be |
|
21-Aug-2013 |
J. Bruce Fields <bfields@redhat.com> |
rpc: fix huge kmalloc's in gss-proxy The reply to a gssproxy can include up to NGROUPS_MAX gid's, which will take up more than a page. We therefore need to allocate an array of pages to hold the reply instead of trying to allocate a single huge buffer. Tested-by: Simo Sorce <simo@redhat.com> Signed-off-by: J. Bruce Fields <bfields@redhat.com>
|
743e217129f69aab074abe520a464fd0c6b1cca1 |
|
31-Jul-2013 |
J. Bruce Fields <bfields@redhat.com> |
svcrpc: fix kfree oops in gss-proxy code mech_oid.data is an array, not kmalloc()'d memory. Cc: stable@vger.kernel.org Signed-off-by: J. Bruce Fields <bfields@redhat.com>
|
9f96392b0ae6aefc02a9b900c3f4889dfafc8402 |
|
10-Jun-2013 |
J. Bruce Fields <bfields@redhat.com> |
svcrpc: fix gss_rpc_upcall create error Cc: stable@vger.kernel.org Signed-off-by: J. Bruce Fields <bfields@redhat.com>
|
6278b62aa8f90c668a4e4b94ad9d3952cf4331b7 |
|
29-Apr-2013 |
Fengguang Wu <fengguang.wu@intel.com> |
SUNRPC: gssp_procedures[] can be static Cc: Simo Sorce <simo@redhat.com> Signed-off-by: Fengguang Wu <fengguang.wu@intel.com>
|
030d794bf49855f5e2a9e8dfbfad34211d1eb08b |
|
26-May-2012 |
Simo Sorce <simo@redhat.com> |
SUNRPC: Use gssproxy upcall for server RPCGSS authentication. The main advantge of this new upcall mechanism is that it can handle big tickets as seen in Kerberos implementations where tickets carry authorization data like the MS-PAC buffer with AD or the Posix Authorization Data being discussed in IETF on the krbwg working group. The Gssproxy program is used to perform the accept_sec_context call on the kernel's behalf. The code is changed to also pass the input buffer straight to upcall mechanism to avoid allocating and copying many pages as tokens can be as big (potentially more in future) as 64KiB. Signed-off-by: Simo Sorce <simo@redhat.com> [bfields: containerization, negotiation api] Signed-off-by: J. Bruce Fields <bfields@redhat.com>
|
1d658336b05f8697d6445834f8867f8ad5e4f735 |
|
26-May-2012 |
Simo Sorce <simo@redhat.com> |
SUNRPC: Add RPC based upcall mechanism for RPCGSS auth This patch implements a sunrpc client to use the services of the gssproxy userspace daemon. In particular it allows to perform calls in user space using an RPC call instead of custom hand-coded upcall/downcall messages. Currently only accept_sec_context is implemented as that is all is needed for the server case. File server modules like NFS and CIFS can use full gssapi services this way, once init_sec_context is also implemented. For the NFS server case this code allow to lift the limit of max 2k krb5 tickets. This limit is prevents legitimate kerberos deployments from using krb5 authentication with the Linux NFS server as they have normally ticket that are many kilobytes large. It will also allow to lift the limitation on the size of the credential set (uid,gid,gids) passed down from user space for users that have very many groups associated. Currently the downcall mechanism used by rpc.svcgssd is limited to around 2k secondary groups of the 65k allowed by kernel structures. Signed-off-by: Simo Sorce <simo@redhat.com> [bfields: containerization, concurrent upcalls, misc. fixes and cleanup] Signed-off-by: J. Bruce Fields <bfields@redhat.com>
|