lkml.org 
[lkml]   [2012]   [Sep]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Date
    Subject[PATCH 02/27] userns: net: Call key_alloc with GLOBAL_ROOT_UID, GLOBAL_ROOT_GID instead of 0, 0
    From: "Eric W. Biederman" <ebiederm@xmission.com>

    In net/dns_resolver/dns_key.c and net/rxrpc/ar-key.c make them
    work with user namespaces enabled where key_alloc takes kuids and kgids.
    Pass GLOBAL_ROOT_UID and GLOBAL_ROOT_GID instead of bare 0's.

    Cc: Sage Weil <sage@inktank.com>
    Cc: ceph-devel@vger.kernel.org
    Cc: David Howells <dhowells@redhat.com>
    Cc: David Miller <davem@davemloft.net>
    Cc: linux-afs@lists.infradead.org
    Acked-by: Serge Hallyn <serge.hallyn@canonical.com>
    Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
    ---
    init/Kconfig | 2 --
    net/dns_resolver/dns_key.c | 3 ++-
    net/rxrpc/ar-key.c | 6 ++++--
    3 files changed, 6 insertions(+), 5 deletions(-)

    diff --git a/init/Kconfig b/init/Kconfig
    index 8dce711..fd8696b 100644
    --- a/init/Kconfig
    +++ b/init/Kconfig
    @@ -938,8 +938,6 @@ config UIDGID_CONVERTED

    # Networking
    depends on NET_9P = n
    - depends on AF_RXRPC = n
    - depends on DNS_RESOLVER = n

    # Filesystems
    depends on USB_GADGETFS = n
    diff --git a/net/dns_resolver/dns_key.c b/net/dns_resolver/dns_key.c
    index d9507dd..9807945 100644
    --- a/net/dns_resolver/dns_key.c
    +++ b/net/dns_resolver/dns_key.c
    @@ -259,7 +259,8 @@ static int __init init_dns_resolver(void)
    if (!cred)
    return -ENOMEM;

    - keyring = key_alloc(&key_type_keyring, ".dns_resolver", 0, 0, cred,
    + keyring = key_alloc(&key_type_keyring, ".dns_resolver",
    + GLOBAL_ROOT_UID, GLOBAL_ROOT_GID, cred,
    (KEY_POS_ALL & ~KEY_POS_SETATTR) |
    KEY_USR_VIEW | KEY_USR_READ,
    KEY_ALLOC_NOT_IN_QUOTA);
    diff --git a/net/rxrpc/ar-key.c b/net/rxrpc/ar-key.c
    index 8b1f9f4..011d238 100644
    --- a/net/rxrpc/ar-key.c
    +++ b/net/rxrpc/ar-key.c
    @@ -948,7 +948,8 @@ int rxrpc_get_server_data_key(struct rxrpc_connection *conn,

    _enter("");

    - key = key_alloc(&key_type_rxrpc, "x", 0, 0, cred, 0,
    + key = key_alloc(&key_type_rxrpc, "x",
    + GLOBAL_ROOT_UID, GLOBAL_ROOT_GID, cred, 0,
    KEY_ALLOC_NOT_IN_QUOTA);
    if (IS_ERR(key)) {
    _leave(" = -ENOMEM [alloc %ld]", PTR_ERR(key));
    @@ -994,7 +995,8 @@ struct key *rxrpc_get_null_key(const char *keyname)
    struct key *key;
    int ret;

    - key = key_alloc(&key_type_rxrpc, keyname, 0, 0, cred,
    + key = key_alloc(&key_type_rxrpc, keyname,
    + GLOBAL_ROOT_UID, GLOBAL_ROOT_GID, cred,
    KEY_POS_SEARCH, KEY_ALLOC_NOT_IN_QUOTA);
    if (IS_ERR(key))
    return key;
    --
    1.7.5.4


    \
     
     \ /
      Last update: 2012-09-20 04:21    [W:0.027 / U:42.516 seconds]
    ©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site