From: Patrick McHardy <kaber@trash.net>
To: NetDev <netdev@vger.kernel.org>, dm-devel@redhat.com
Cc: "David S. Miller" <davem@davemloft.net>,
Chris Wright <chrisw@sous-sol.org>,
"linux-security-module@vger.kernel.org"
<linux-security-module@vger.kernel.org>,
drbd-dev@lists.linbit.com
Subject: [PATCH 2/2] netlink: kill eff_cap from struct netlink_skb_parms
Date: Thu, 03 Mar 2011 10:38:08 +0100 [thread overview]
Message-ID: <4D6F6180.5030903@trash.net> (raw)
[-- Attachment #1: Type: text/plain, Size: 0 bytes --]
[-- Attachment #2: 02.diff --]
[-- Type: text/plain, Size: 2971 bytes --]
commit 8ff259625f0ab295fa085b0718eed13093813fbc
Author: Patrick McHardy <kaber@trash.net>
Date: Thu Mar 3 10:17:31 2011 +0100
netlink: kill eff_cap from struct netlink_skb_parms
Netlink message processing in the kernel is synchronous these days,
capabilities can be checked directly in security_netlink_recv() from
the current process.
Signed-off-by: Patrick McHardy <kaber@trash.net>
diff --git a/drivers/block/drbd/drbd_nl.c b/drivers/block/drbd/drbd_nl.c
index 8cbfaa6..fe81c85 100644
--- a/drivers/block/drbd/drbd_nl.c
+++ b/drivers/block/drbd/drbd_nl.c
@@ -2177,7 +2177,7 @@ static void drbd_connector_callback(struct cn_msg *req, struct netlink_skb_parms
return;
}
- if (!cap_raised(nsp->eff_cap, CAP_SYS_ADMIN)) {
+ if (!cap_raised(current_cap(), CAP_SYS_ADMIN)) {
retcode = ERR_PERM;
goto fail;
}
diff --git a/drivers/md/dm-log-userspace-transfer.c b/drivers/md/dm-log-userspace-transfer.c
index 049eaf1..1f23e04 100644
--- a/drivers/md/dm-log-userspace-transfer.c
+++ b/drivers/md/dm-log-userspace-transfer.c
@@ -134,7 +134,7 @@ static void cn_ulog_callback(struct cn_msg *msg, struct netlink_skb_parms *nsp)
{
struct dm_ulog_request *tfr = (struct dm_ulog_request *)(msg + 1);
- if (!cap_raised(nsp->eff_cap, CAP_SYS_ADMIN))
+ if (!cap_raised(current_cap(), CAP_SYS_ADMIN))
return;
spin_lock(&receiving_list_lock);
diff --git a/include/linux/netlink.h b/include/linux/netlink.h
index 66823b8..4c4ac3f 100644
--- a/include/linux/netlink.h
+++ b/include/linux/netlink.h
@@ -160,7 +160,6 @@ struct netlink_skb_parms {
struct ucred creds; /* Skb credentials */
__u32 pid;
__u32 dst_group;
- kernel_cap_t eff_cap;
};
#define NETLINK_CB(skb) (*(struct netlink_skb_parms*)&((skb)->cb))
diff --git a/net/netlink/af_netlink.c b/net/netlink/af_netlink.c
index 97ecd92..a808fb1 100644
--- a/net/netlink/af_netlink.c
+++ b/net/netlink/af_netlink.c
@@ -1364,12 +1364,6 @@ static int netlink_sendmsg(struct kiocb *kiocb, struct socket *sock,
NETLINK_CB(skb).dst_group = dst_group;
memcpy(NETLINK_CREDS(skb), &siocb->scm->creds, sizeof(struct ucred));
- /* What can I do? Netlink is asynchronous, so that
- we will have to save current capabilities to
- check them, when this message will be delivered
- to corresponding kernel module. --ANK (980802)
- */
-
err = -EFAULT;
if (memcpy_fromiovec(skb_put(skb, len), msg->msg_iov, len)) {
kfree_skb(skb);
diff --git a/security/commoncap.c b/security/commoncap.c
index 64c2ed9..a83e607 100644
--- a/security/commoncap.c
+++ b/security/commoncap.c
@@ -52,13 +52,12 @@ static void warn_setuid_and_fcaps_mixed(const char *fname)
int cap_netlink_send(struct sock *sk, struct sk_buff *skb)
{
- NETLINK_CB(skb).eff_cap = current_cap();
return 0;
}
int cap_netlink_recv(struct sk_buff *skb, int cap)
{
- if (!cap_raised(NETLINK_CB(skb).eff_cap, cap))
+ if (!cap_raised(current_cap(), cap))
return -EPERM;
return 0;
}
WARNING: multiple messages have this Message-ID (diff)
From: Patrick McHardy <kaber@trash.net>
To: NetDev <netdev@vger.kernel.org>, dm-devel@redhat.com
Cc: Chris Wright <chrisw@sous-sol.org>,
"linux-security-module@vger.kernel.org"
<linux-security-module@vger.kernel.org>,
"David S. Miller" <davem@davemloft.net>,
drbd-dev@lists.linbit.com
Subject: [Drbd-dev] [PATCH 2/2] netlink: kill eff_cap from struct netlink_skb_parms
Date: Thu, 03 Mar 2011 10:38:08 +0100 [thread overview]
Message-ID: <4D6F6180.5030903@trash.net> (raw)
[-- Attachment #1: Type: text/plain, Size: 0 bytes --]
[-- Attachment #2: 02.diff --]
[-- Type: text/plain, Size: 2971 bytes --]
commit 8ff259625f0ab295fa085b0718eed13093813fbc
Author: Patrick McHardy <kaber@trash.net>
Date: Thu Mar 3 10:17:31 2011 +0100
netlink: kill eff_cap from struct netlink_skb_parms
Netlink message processing in the kernel is synchronous these days,
capabilities can be checked directly in security_netlink_recv() from
the current process.
Signed-off-by: Patrick McHardy <kaber@trash.net>
diff --git a/drivers/block/drbd/drbd_nl.c b/drivers/block/drbd/drbd_nl.c
index 8cbfaa6..fe81c85 100644
--- a/drivers/block/drbd/drbd_nl.c
+++ b/drivers/block/drbd/drbd_nl.c
@@ -2177,7 +2177,7 @@ static void drbd_connector_callback(struct cn_msg *req, struct netlink_skb_parms
return;
}
- if (!cap_raised(nsp->eff_cap, CAP_SYS_ADMIN)) {
+ if (!cap_raised(current_cap(), CAP_SYS_ADMIN)) {
retcode = ERR_PERM;
goto fail;
}
diff --git a/drivers/md/dm-log-userspace-transfer.c b/drivers/md/dm-log-userspace-transfer.c
index 049eaf1..1f23e04 100644
--- a/drivers/md/dm-log-userspace-transfer.c
+++ b/drivers/md/dm-log-userspace-transfer.c
@@ -134,7 +134,7 @@ static void cn_ulog_callback(struct cn_msg *msg, struct netlink_skb_parms *nsp)
{
struct dm_ulog_request *tfr = (struct dm_ulog_request *)(msg + 1);
- if (!cap_raised(nsp->eff_cap, CAP_SYS_ADMIN))
+ if (!cap_raised(current_cap(), CAP_SYS_ADMIN))
return;
spin_lock(&receiving_list_lock);
diff --git a/include/linux/netlink.h b/include/linux/netlink.h
index 66823b8..4c4ac3f 100644
--- a/include/linux/netlink.h
+++ b/include/linux/netlink.h
@@ -160,7 +160,6 @@ struct netlink_skb_parms {
struct ucred creds; /* Skb credentials */
__u32 pid;
__u32 dst_group;
- kernel_cap_t eff_cap;
};
#define NETLINK_CB(skb) (*(struct netlink_skb_parms*)&((skb)->cb))
diff --git a/net/netlink/af_netlink.c b/net/netlink/af_netlink.c
index 97ecd92..a808fb1 100644
--- a/net/netlink/af_netlink.c
+++ b/net/netlink/af_netlink.c
@@ -1364,12 +1364,6 @@ static int netlink_sendmsg(struct kiocb *kiocb, struct socket *sock,
NETLINK_CB(skb).dst_group = dst_group;
memcpy(NETLINK_CREDS(skb), &siocb->scm->creds, sizeof(struct ucred));
- /* What can I do? Netlink is asynchronous, so that
- we will have to save current capabilities to
- check them, when this message will be delivered
- to corresponding kernel module. --ANK (980802)
- */
-
err = -EFAULT;
if (memcpy_fromiovec(skb_put(skb, len), msg->msg_iov, len)) {
kfree_skb(skb);
diff --git a/security/commoncap.c b/security/commoncap.c
index 64c2ed9..a83e607 100644
--- a/security/commoncap.c
+++ b/security/commoncap.c
@@ -52,13 +52,12 @@ static void warn_setuid_and_fcaps_mixed(const char *fname)
int cap_netlink_send(struct sock *sk, struct sk_buff *skb)
{
- NETLINK_CB(skb).eff_cap = current_cap();
return 0;
}
int cap_netlink_recv(struct sk_buff *skb, int cap)
{
- if (!cap_raised(NETLINK_CB(skb).eff_cap, cap))
+ if (!cap_raised(current_cap(), cap))
return -EPERM;
return 0;
}
next reply other threads:[~2011-03-03 9:38 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-03-03 9:38 Patrick McHardy [this message]
2011-03-03 9:38 ` [Drbd-dev] [PATCH 2/2] netlink: kill eff_cap from struct netlink_skb_parms Patrick McHardy
2011-03-03 10:49 ` James Morris
2011-03-03 10:49 ` [Drbd-dev] " James Morris
2011-03-03 17:32 ` Chris Wright
2011-03-03 17:32 ` [Drbd-dev] " Chris Wright
2011-03-03 18:56 ` David Miller
2011-03-03 18:56 ` [Drbd-dev] " David Miller
2011-03-03 20:15 ` [PATCH 2/2 v2] " Chris Wright
2011-03-03 20:15 ` [Drbd-dev] " Chris Wright
2011-03-03 20:15 ` Chris Wright
2011-03-03 21:39 ` David Miller
2011-03-03 21:39 ` [Drbd-dev] " David Miller
2011-03-03 21:39 ` [PATCH 2/2 v2] netlink: kill eff_cap from struct David Miller
[not found] ` <20110303201522.GT4988-JyIX8gxvWYPr2PDY2+4mTGD2FQJk+8+b@public.gmane.org>
2011-03-03 22:37 ` [PATCH 2/2 v2] netlink: kill eff_cap from struct netlink_skb_parms Lars Ellenberg
2011-03-03 22:37 ` [Drbd-dev] " Lars Ellenberg
2011-03-03 22:37 ` [Drbd-dev] [PATCH 2/2 v2] netlink: kill eff_cap from struct Lars Ellenberg
2011-03-03 23:53 ` [Drbd-dev] [PATCH 2/2 v2] netlink: kill eff_cap from struct netlink_skb_parms Chris Wright
2011-03-03 23:53 ` Chris Wright
2011-03-03 23:53 ` [Drbd-dev] [PATCH 2/2 v2] netlink: kill eff_cap from struct Chris Wright
2011-03-04 1:29 ` [Drbd-dev] [PATCH 2/2 v2] netlink: kill eff_cap from struct netlink_skb_parms Evgeniy Polyakov
2011-03-04 1:29 ` Evgeniy Polyakov
2011-03-04 1:29 ` [Drbd-dev] [PATCH 2/2 v2] netlink: kill eff_cap from struct Evgeniy Polyakov
2011-03-04 1:38 ` [Drbd-dev] [PATCH 2/2 v2] netlink: kill eff_cap from struct netlink_skb_parms David Miller
2011-03-04 1:38 ` David Miller
2011-03-04 1:38 ` [Drbd-dev] [PATCH 2/2 v2] netlink: kill eff_cap from struct David Miller
2011-03-08 14:50 ` [Drbd-dev] [PATCH 2/2 v2] netlink: kill eff_cap from struct netlink_skb_parms Patrick McHardy
2011-03-08 14:50 ` Patrick McHardy
2011-03-08 14:50 ` Patrick McHardy
2011-03-08 18:32 ` Evgeniy Polyakov
2011-03-08 18:32 ` Evgeniy Polyakov
2011-03-08 18:32 ` [Drbd-dev] [PATCH 2/2 v2] netlink: kill eff_cap from struct Evgeniy Polyakov
2011-03-08 18:54 ` [Drbd-dev] [PATCH 2/2 v2] netlink: kill eff_cap from struct netlink_skb_parms Patrick McHardy
2011-03-08 18:54 ` Patrick McHardy
2011-03-08 18:54 ` Patrick McHardy
2011-03-17 15:43 ` Evgeniy Polyakov
2011-03-17 15:43 ` Evgeniy Polyakov
2011-03-17 15:43 ` [Drbd-dev] [PATCH 2/2 v2] netlink: kill eff_cap from struct Evgeniy Polyakov
2011-03-03 20:17 ` [PATCH 2/2] netlink: kill eff_cap from struct netlink_skb_parms Chris Wright
2011-03-03 20:17 ` [Drbd-dev] " Chris Wright
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4D6F6180.5030903@trash.net \
--to=kaber@trash.net \
--cc=chrisw@sous-sol.org \
--cc=davem@davemloft.net \
--cc=dm-devel@redhat.com \
--cc=drbd-dev@lists.linbit.com \
--cc=linux-security-module@vger.kernel.org \
--cc=netdev@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.