linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jiri Slaby <jslaby@suse.cz>
To: stable@vger.kernel.org
Cc: linux-kernel@vger.kernel.org,
	"Eric W. Biederman" <ebiederm@xmission.com>,
	"David S. Miller" <davem@davemloft.net>,
	Jiri Slaby <jslaby@suse.cz>
Subject: [PATCH 3.12 091/111] net: Use netlink_ns_capable to verify the permisions of netlink messages
Date: Mon, 23 Jun 2014 10:32:06 +0200	[thread overview]
Message-ID: <50b8b6e75fa0c08cef1e1ed30a7ab91f05bcb779.1403512281.git.jslaby@suse.cz> (raw)
In-Reply-To: <55d5f044a1fc96a74e4470e318c0a24f27a9ab7e.1403512280.git.jslaby@suse.cz>
In-Reply-To: <cover.1403512280.git.jslaby@suse.cz>

From: "Eric W. Biederman" <ebiederm@xmission.com>

3.12-stable review patch.  If anyone has any objections, please let me know.

===============

[ Upstream commit 90f62cf30a78721641e08737bda787552428061e ]

It is possible by passing a netlink socket to a more privileged
executable and then to fool that executable into writing to the socket
data that happens to be valid netlink message to do something that
privileged executable did not intend to do.

To keep this from happening replace bare capable and ns_capable calls
with netlink_capable, netlink_net_calls and netlink_ns_capable calls.
Which act the same as the previous calls except they verify that the
opener of the socket had the desired permissions as well.

Reported-by: Andy Lutomirski <luto@amacapital.net>
Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
---
 crypto/crypto_user.c            |  2 +-
 drivers/connector/cn_proc.c     |  2 +-
 drivers/scsi/scsi_netlink.c     |  2 +-
 kernel/audit.c                  |  4 ++--
 net/can/gw.c                    |  4 ++--
 net/core/rtnetlink.c            | 20 +++++++++++---------
 net/dcb/dcbnl.c                 |  2 +-
 net/decnet/dn_dev.c             |  4 ++--
 net/decnet/dn_fib.c             |  4 ++--
 net/decnet/netfilter/dn_rtmsg.c |  2 +-
 net/netfilter/nfnetlink.c       |  2 +-
 net/netlink/genetlink.c         |  2 +-
 net/packet/diag.c               |  2 +-
 net/phonet/pn_netlink.c         |  8 ++++----
 net/sched/act_api.c             |  2 +-
 net/sched/cls_api.c             |  2 +-
 net/sched/sch_api.c             |  6 +++---
 net/tipc/netlink.c              |  2 +-
 net/xfrm/xfrm_user.c            |  2 +-
 19 files changed, 38 insertions(+), 36 deletions(-)

diff --git a/crypto/crypto_user.c b/crypto/crypto_user.c
index 1512e41cd93d..43665d0d0905 100644
--- a/crypto/crypto_user.c
+++ b/crypto/crypto_user.c
@@ -466,7 +466,7 @@ static int crypto_user_rcv_msg(struct sk_buff *skb, struct nlmsghdr *nlh)
 	type -= CRYPTO_MSG_BASE;
 	link = &crypto_dispatch[type];
 
-	if (!capable(CAP_NET_ADMIN))
+	if (!netlink_capable(skb, CAP_NET_ADMIN))
 		return -EPERM;
 
 	if ((type == (CRYPTO_MSG_GETALG - CRYPTO_MSG_BASE) &&
diff --git a/drivers/connector/cn_proc.c b/drivers/connector/cn_proc.c
index 18c5b9b16645..3165811e2407 100644
--- a/drivers/connector/cn_proc.c
+++ b/drivers/connector/cn_proc.c
@@ -369,7 +369,7 @@ static void cn_proc_mcast_ctl(struct cn_msg *msg,
 		return;
 
 	/* Can only change if privileged. */
-	if (!capable(CAP_NET_ADMIN)) {
+	if (!__netlink_ns_capable(nsp, &init_user_ns, CAP_NET_ADMIN)) {
 		err = EPERM;
 		goto out;
 	}
diff --git a/drivers/scsi/scsi_netlink.c b/drivers/scsi/scsi_netlink.c
index fe30ea94ffe6..109802f776ed 100644
--- a/drivers/scsi/scsi_netlink.c
+++ b/drivers/scsi/scsi_netlink.c
@@ -77,7 +77,7 @@ scsi_nl_rcv_msg(struct sk_buff *skb)
 			goto next_msg;
 		}
 
-		if (!capable(CAP_SYS_ADMIN)) {
+		if (!netlink_capable(skb, CAP_SYS_ADMIN)) {
 			err = -EPERM;
 			goto next_msg;
 		}
diff --git a/kernel/audit.c b/kernel/audit.c
index 50512d11a445..197a496587a6 100644
--- a/kernel/audit.c
+++ b/kernel/audit.c
@@ -593,13 +593,13 @@ static int audit_netlink_ok(struct sk_buff *skb, u16 msg_type)
 	case AUDIT_TTY_SET:
 	case AUDIT_TRIM:
 	case AUDIT_MAKE_EQUIV:
-		if (!capable(CAP_AUDIT_CONTROL))
+		if (!netlink_capable(skb, CAP_AUDIT_CONTROL))
 			err = -EPERM;
 		break;
 	case AUDIT_USER:
 	case AUDIT_FIRST_USER_MSG ... AUDIT_LAST_USER_MSG:
 	case AUDIT_FIRST_USER_MSG2 ... AUDIT_LAST_USER_MSG2:
-		if (!capable(CAP_AUDIT_WRITE))
+		if (!netlink_capable(skb, CAP_AUDIT_WRITE))
 			err = -EPERM;
 		break;
 	default:  /* bad msg */
diff --git a/net/can/gw.c b/net/can/gw.c
index 3f9b0f3a2818..233ce53c1852 100644
--- a/net/can/gw.c
+++ b/net/can/gw.c
@@ -804,7 +804,7 @@ static int cgw_create_job(struct sk_buff *skb,  struct nlmsghdr *nlh)
 	u8 limhops = 0;
 	int err = 0;
 
-	if (!capable(CAP_NET_ADMIN))
+	if (!netlink_capable(skb, CAP_NET_ADMIN))
 		return -EPERM;
 
 	if (nlmsg_len(nlh) < sizeof(*r))
@@ -900,7 +900,7 @@ static int cgw_remove_job(struct sk_buff *skb, struct nlmsghdr *nlh)
 	u8 limhops = 0;
 	int err = 0;
 
-	if (!capable(CAP_NET_ADMIN))
+	if (!netlink_capable(skb, CAP_NET_ADMIN))
 		return -EPERM;
 
 	if (nlmsg_len(nlh) < sizeof(*r))
diff --git a/net/core/rtnetlink.c b/net/core/rtnetlink.c
index 7b03d44b7be4..e46ced7c9c33 100644
--- a/net/core/rtnetlink.c
+++ b/net/core/rtnetlink.c
@@ -1366,7 +1366,8 @@ static int do_set_master(struct net_device *dev, int ifindex)
 	return 0;
 }
 
-static int do_setlink(struct net_device *dev, struct ifinfomsg *ifm,
+static int do_setlink(const struct sk_buff *skb,
+		      struct net_device *dev, struct ifinfomsg *ifm,
 		      struct nlattr **tb, char *ifname, int modified)
 {
 	const struct net_device_ops *ops = dev->netdev_ops;
@@ -1378,7 +1379,7 @@ static int do_setlink(struct net_device *dev, struct ifinfomsg *ifm,
 			err = PTR_ERR(net);
 			goto errout;
 		}
-		if (!ns_capable(net->user_ns, CAP_NET_ADMIN)) {
+		if (!netlink_ns_capable(skb, net->user_ns, CAP_NET_ADMIN)) {
 			err = -EPERM;
 			goto errout;
 		}
@@ -1632,7 +1633,7 @@ static int rtnl_setlink(struct sk_buff *skb, struct nlmsghdr *nlh)
 	if (err < 0)
 		goto errout;
 
-	err = do_setlink(dev, ifm, tb, ifname, 0);
+	err = do_setlink(skb, dev, ifm, tb, ifname, 0);
 errout:
 	return err;
 }
@@ -1750,7 +1751,8 @@ err:
 }
 EXPORT_SYMBOL(rtnl_create_link);
 
-static int rtnl_group_changelink(struct net *net, int group,
+static int rtnl_group_changelink(const struct sk_buff *skb,
+		struct net *net, int group,
 		struct ifinfomsg *ifm,
 		struct nlattr **tb)
 {
@@ -1759,7 +1761,7 @@ static int rtnl_group_changelink(struct net *net, int group,
 
 	for_each_netdev(net, dev) {
 		if (dev->group == group) {
-			err = do_setlink(dev, ifm, tb, NULL, 0);
+			err = do_setlink(skb, dev, ifm, tb, NULL, 0);
 			if (err < 0)
 				return err;
 		}
@@ -1861,12 +1863,12 @@ replay:
 				modified = 1;
 			}
 
-			return do_setlink(dev, ifm, tb, ifname, modified);
+			return do_setlink(skb, dev, ifm, tb, ifname, modified);
 		}
 
 		if (!(nlh->nlmsg_flags & NLM_F_CREATE)) {
 			if (ifm->ifi_index == 0 && tb[IFLA_GROUP])
-				return rtnl_group_changelink(net,
+				return rtnl_group_changelink(skb, net,
 						nla_get_u32(tb[IFLA_GROUP]),
 						ifm, tb);
 			return -ENODEV;
@@ -2247,7 +2249,7 @@ static int rtnl_fdb_del(struct sk_buff *skb, struct nlmsghdr *nlh)
 	int err = -EINVAL;
 	__u8 *addr;
 
-	if (!capable(CAP_NET_ADMIN))
+	if (!netlink_capable(skb, CAP_NET_ADMIN))
 		return -EPERM;
 
 	err = nlmsg_parse(nlh, sizeof(*ndm), tb, NDA_MAX, NULL);
@@ -2699,7 +2701,7 @@ static int rtnetlink_rcv_msg(struct sk_buff *skb, struct nlmsghdr *nlh)
 	sz_idx = type>>2;
 	kind = type&3;
 
-	if (kind != 2 && !ns_capable(net->user_ns, CAP_NET_ADMIN))
+	if (kind != 2 && !netlink_net_capable(skb, CAP_NET_ADMIN))
 		return -EPERM;
 
 	if (kind == 2 && nlh->nlmsg_flags&NLM_F_DUMP) {
diff --git a/net/dcb/dcbnl.c b/net/dcb/dcbnl.c
index 40d5829ed36a..1074ffb6d533 100644
--- a/net/dcb/dcbnl.c
+++ b/net/dcb/dcbnl.c
@@ -1670,7 +1670,7 @@ static int dcb_doit(struct sk_buff *skb, struct nlmsghdr *nlh)
 	struct nlmsghdr *reply_nlh = NULL;
 	const struct reply_func *fn;
 
-	if ((nlh->nlmsg_type == RTM_SETDCB) && !capable(CAP_NET_ADMIN))
+	if ((nlh->nlmsg_type == RTM_SETDCB) && !netlink_capable(skb, CAP_NET_ADMIN))
 		return -EPERM;
 
 	ret = nlmsg_parse(nlh, sizeof(*dcb), tb, DCB_ATTR_MAX,
diff --git a/net/decnet/dn_dev.c b/net/decnet/dn_dev.c
index dd0dfb25f4b1..70f254912a36 100644
--- a/net/decnet/dn_dev.c
+++ b/net/decnet/dn_dev.c
@@ -573,7 +573,7 @@ static int dn_nl_deladdr(struct sk_buff *skb, struct nlmsghdr *nlh)
 	struct dn_ifaddr __rcu **ifap;
 	int err = -EINVAL;
 
-	if (!capable(CAP_NET_ADMIN))
+	if (!netlink_capable(skb, CAP_NET_ADMIN))
 		return -EPERM;
 
 	if (!net_eq(net, &init_net))
@@ -617,7 +617,7 @@ static int dn_nl_newaddr(struct sk_buff *skb, struct nlmsghdr *nlh)
 	struct dn_ifaddr *ifa;
 	int err;
 
-	if (!capable(CAP_NET_ADMIN))
+	if (!netlink_capable(skb, CAP_NET_ADMIN))
 		return -EPERM;
 
 	if (!net_eq(net, &init_net))
diff --git a/net/decnet/dn_fib.c b/net/decnet/dn_fib.c
index 57dc159245ec..d332aefb0846 100644
--- a/net/decnet/dn_fib.c
+++ b/net/decnet/dn_fib.c
@@ -505,7 +505,7 @@ static int dn_fib_rtm_delroute(struct sk_buff *skb, struct nlmsghdr *nlh)
 	struct nlattr *attrs[RTA_MAX+1];
 	int err;
 
-	if (!capable(CAP_NET_ADMIN))
+	if (!netlink_capable(skb, CAP_NET_ADMIN))
 		return -EPERM;
 
 	if (!net_eq(net, &init_net))
@@ -530,7 +530,7 @@ static int dn_fib_rtm_newroute(struct sk_buff *skb, struct nlmsghdr *nlh)
 	struct nlattr *attrs[RTA_MAX+1];
 	int err;
 
-	if (!capable(CAP_NET_ADMIN))
+	if (!netlink_capable(skb, CAP_NET_ADMIN))
 		return -EPERM;
 
 	if (!net_eq(net, &init_net))
diff --git a/net/decnet/netfilter/dn_rtmsg.c b/net/decnet/netfilter/dn_rtmsg.c
index 2a7efe388344..f3dc69a41d63 100644
--- a/net/decnet/netfilter/dn_rtmsg.c
+++ b/net/decnet/netfilter/dn_rtmsg.c
@@ -107,7 +107,7 @@ static inline void dnrmg_receive_user_skb(struct sk_buff *skb)
 	if (nlh->nlmsg_len < sizeof(*nlh) || skb->len < nlh->nlmsg_len)
 		return;
 
-	if (!capable(CAP_NET_ADMIN))
+	if (!netlink_capable(skb, CAP_NET_ADMIN))
 		RCV_SKB_FAIL(-EPERM);
 
 	/* Eventually we might send routing messages too */
diff --git a/net/netfilter/nfnetlink.c b/net/netfilter/nfnetlink.c
index 572d87dc116f..0a03662bfbef 100644
--- a/net/netfilter/nfnetlink.c
+++ b/net/netfilter/nfnetlink.c
@@ -147,7 +147,7 @@ static int nfnetlink_rcv_msg(struct sk_buff *skb, struct nlmsghdr *nlh)
 	const struct nfnetlink_subsystem *ss;
 	int type, err;
 
-	if (!ns_capable(net->user_ns, CAP_NET_ADMIN))
+	if (!netlink_net_capable(skb, CAP_NET_ADMIN))
 		return -EPERM;
 
 	/* All the messages must at least contain nfgenmsg */
diff --git a/net/netlink/genetlink.c b/net/netlink/genetlink.c
index 0c741cec4d0d..c7408dd8fd9a 100644
--- a/net/netlink/genetlink.c
+++ b/net/netlink/genetlink.c
@@ -592,7 +592,7 @@ static int genl_family_rcv_msg(struct genl_family *family,
 		return -EOPNOTSUPP;
 
 	if ((ops->flags & GENL_ADMIN_PERM) &&
-	    !capable(CAP_NET_ADMIN))
+	    !netlink_capable(skb, CAP_NET_ADMIN))
 		return -EPERM;
 
 	if ((nlh->nlmsg_flags & NLM_F_DUMP) == NLM_F_DUMP) {
diff --git a/net/packet/diag.c b/net/packet/diag.c
index 01cd1ac44ff5..674b0a65df6c 100644
--- a/net/packet/diag.c
+++ b/net/packet/diag.c
@@ -193,7 +193,7 @@ static int packet_diag_dump(struct sk_buff *skb, struct netlink_callback *cb)
 
 	net = sock_net(skb->sk);
 	req = nlmsg_data(cb->nlh);
-	may_report_filterinfo = ns_capable(net->user_ns, CAP_NET_ADMIN);
+	may_report_filterinfo = netlink_net_capable(cb->skb, CAP_NET_ADMIN);
 
 	mutex_lock(&net->packet.sklist_lock);
 	sk_for_each(sk, &net->packet.sklist) {
diff --git a/net/phonet/pn_netlink.c b/net/phonet/pn_netlink.c
index dc15f4300808..b64151ade6b3 100644
--- a/net/phonet/pn_netlink.c
+++ b/net/phonet/pn_netlink.c
@@ -70,10 +70,10 @@ static int addr_doit(struct sk_buff *skb, struct nlmsghdr *nlh)
 	int err;
 	u8 pnaddr;
 
-	if (!capable(CAP_NET_ADMIN))
+	if (!netlink_capable(skb, CAP_NET_ADMIN))
 		return -EPERM;
 
-	if (!capable(CAP_SYS_ADMIN))
+	if (!netlink_capable(skb, CAP_SYS_ADMIN))
 		return -EPERM;
 
 	ASSERT_RTNL();
@@ -233,10 +233,10 @@ static int route_doit(struct sk_buff *skb, struct nlmsghdr *nlh)
 	int err;
 	u8 dst;
 
-	if (!capable(CAP_NET_ADMIN))
+	if (!netlink_capable(skb, CAP_NET_ADMIN))
 		return -EPERM;
 
-	if (!capable(CAP_SYS_ADMIN))
+	if (!netlink_capable(skb, CAP_SYS_ADMIN))
 		return -EPERM;
 
 	ASSERT_RTNL();
diff --git a/net/sched/act_api.c b/net/sched/act_api.c
index fd7072827a40..15d46b9166de 100644
--- a/net/sched/act_api.c
+++ b/net/sched/act_api.c
@@ -989,7 +989,7 @@ static int tc_ctl_action(struct sk_buff *skb, struct nlmsghdr *n)
 	u32 portid = skb ? NETLINK_CB(skb).portid : 0;
 	int ret = 0, ovr = 0;
 
-	if ((n->nlmsg_type != RTM_GETACTION) && !capable(CAP_NET_ADMIN))
+	if ((n->nlmsg_type != RTM_GETACTION) && !netlink_capable(skb, CAP_NET_ADMIN))
 		return -EPERM;
 
 	ret = nlmsg_parse(n, sizeof(struct tcamsg), tca, TCA_ACT_MAX, NULL);
diff --git a/net/sched/cls_api.c b/net/sched/cls_api.c
index 8e118af90973..2ea40d1877a6 100644
--- a/net/sched/cls_api.c
+++ b/net/sched/cls_api.c
@@ -138,7 +138,7 @@ static int tc_ctl_tfilter(struct sk_buff *skb, struct nlmsghdr *n)
 	int err;
 	int tp_created = 0;
 
-	if ((n->nlmsg_type != RTM_GETTFILTER) && !capable(CAP_NET_ADMIN))
+	if ((n->nlmsg_type != RTM_GETTFILTER) && !netlink_capable(skb, CAP_NET_ADMIN))
 		return -EPERM;
 
 replay:
diff --git a/net/sched/sch_api.c b/net/sched/sch_api.c
index 2adda7fa2d39..3f5fe03fee72 100644
--- a/net/sched/sch_api.c
+++ b/net/sched/sch_api.c
@@ -1076,7 +1076,7 @@ static int tc_get_qdisc(struct sk_buff *skb, struct nlmsghdr *n)
 	struct Qdisc *p = NULL;
 	int err;
 
-	if ((n->nlmsg_type != RTM_GETQDISC) && !capable(CAP_NET_ADMIN))
+	if ((n->nlmsg_type != RTM_GETQDISC) && !netlink_capable(skb, CAP_NET_ADMIN))
 		return -EPERM;
 
 	err = nlmsg_parse(n, sizeof(*tcm), tca, TCA_MAX, NULL);
@@ -1143,7 +1143,7 @@ static int tc_modify_qdisc(struct sk_buff *skb, struct nlmsghdr *n)
 	struct Qdisc *q, *p;
 	int err;
 
-	if (!capable(CAP_NET_ADMIN))
+	if (!netlink_capable(skb, CAP_NET_ADMIN))
 		return -EPERM;
 
 replay:
@@ -1483,7 +1483,7 @@ static int tc_ctl_tclass(struct sk_buff *skb, struct nlmsghdr *n)
 	u32 qid;
 	int err;
 
-	if ((n->nlmsg_type != RTM_GETTCLASS) && !capable(CAP_NET_ADMIN))
+	if ((n->nlmsg_type != RTM_GETTCLASS) && !netlink_capable(skb, CAP_NET_ADMIN))
 		return -EPERM;
 
 	err = nlmsg_parse(n, sizeof(*tcm), tca, TCA_MAX, NULL);
diff --git a/net/tipc/netlink.c b/net/tipc/netlink.c
index 8bcd4985d0fb..1e6081fb6078 100644
--- a/net/tipc/netlink.c
+++ b/net/tipc/netlink.c
@@ -47,7 +47,7 @@ static int handle_cmd(struct sk_buff *skb, struct genl_info *info)
 	int hdr_space = nlmsg_total_size(GENL_HDRLEN + TIPC_GENL_HDRLEN);
 	u16 cmd;
 
-	if ((req_userhdr->cmd & 0xC000) && (!capable(CAP_NET_ADMIN)))
+	if ((req_userhdr->cmd & 0xC000) && (!netlink_capable(skb, CAP_NET_ADMIN)))
 		cmd = TIPC_CMD_NOT_NET_ADMIN;
 	else
 		cmd = req_userhdr->cmd;
diff --git a/net/xfrm/xfrm_user.c b/net/xfrm/xfrm_user.c
index f964d4c00ffb..352dfa4c39ee 100644
--- a/net/xfrm/xfrm_user.c
+++ b/net/xfrm/xfrm_user.c
@@ -2363,7 +2363,7 @@ static int xfrm_user_rcv_msg(struct sk_buff *skb, struct nlmsghdr *nlh)
 	link = &xfrm_dispatch[type];
 
 	/* All operations require privileges, even GET */
-	if (!ns_capable(net->user_ns, CAP_NET_ADMIN))
+	if (!netlink_net_capable(skb, CAP_NET_ADMIN))
 		return -EPERM;
 
 	if ((type == (XFRM_MSG_GETSA - XFRM_MSG_BASE) ||
-- 
2.0.0


  parent reply	other threads:[~2014-06-23  8:44 UTC|newest]

Thread overview: 116+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-06-23  8:32 [PATCH 3.12 000/111] 3.12.23-stable review Jiri Slaby
2014-06-23  8:30 ` [PATCH 3.12 001/111] ath9k: Fix sequence number assignment for non-data frames Jiri Slaby
2014-06-23  8:30 ` [PATCH 3.12 002/111] rtlwifi: rtl8192se: Fix regression due to commit 1bf4bbb Jiri Slaby
2014-06-23  8:30 ` [PATCH 3.12 003/111] xhci: extend quirk for Renesas cards Jiri Slaby
2014-06-23  8:30 ` [PATCH 3.12 004/111] drm/i915: restrict vt-d stolen memory workaround to pre-gen8 Jiri Slaby
2014-06-23  8:30 ` [PATCH 3.12 005/111] floppy: do not corrupt bio.bi_flags when reading block 0 Jiri Slaby
2014-06-23  8:30 ` [PATCH 3.12 006/111] xhci: Switch only Intel Lynx Point-LP ports to EHCI on shutdown Jiri Slaby
2014-06-23  8:30 ` [PATCH 3.12 007/111] MIPS: asm: thread_info: Add _TIF_SECCOMP flag Jiri Slaby
2014-06-23  8:30 ` [PATCH 3.12 008/111] btrfs: fix defrag 32-bit integer overflow Jiri Slaby
2014-06-23  8:30 ` [PATCH 3.12 009/111] target: Fix NULL pointer dereference for XCOPY in target_put_sess_cmd Jiri Slaby
2014-06-23  8:30 ` [PATCH 3.12 010/111] mm: compaction: reset cached scanner pfn's before reading them Jiri Slaby
2014-06-23  8:30 ` [PATCH 3.12 011/111] mm: compaction: detect when scanners meet in isolate_freepages Jiri Slaby
2014-06-23  8:30 ` [PATCH 3.12 012/111] mm/compaction: make isolate_freepages start at pageblock boundary Jiri Slaby
2014-06-23  8:30 ` [PATCH 3.12 013/111] ARM: perf: hook up perf_sample_event_took around pmu irq handling Jiri Slaby
2014-06-23  8:30 ` [PATCH 3.12 014/111] iommu/vt-d: Fix missing IOTLB flush in intel_iommu_unmap() Jiri Slaby
2014-06-23  8:30 ` [PATCH 3.12 015/111] sched: Use CPUPRI_NR_PRIORITIES instead of MAX_RT_PRIO in cpupri check Jiri Slaby
2014-06-23  8:30 ` [PATCH 3.12 016/111] sched: Sanitize irq accounting madness Jiri Slaby
2014-06-23  8:30 ` [PATCH 3.12 017/111] perf: Prevent false warning in perf_swevent_add Jiri Slaby
2014-06-23  8:30 ` [PATCH 3.12 018/111] perf: Limit perf_event_attr::sample_period to 63 bits Jiri Slaby
2014-06-23  8:30 ` [PATCH 3.12 019/111] perf: Fix race in removing an event Jiri Slaby
2014-06-23  8:30 ` [PATCH 3.12 020/111] mm/memory-failure.c: fix memory leak by race between poison and unpoison Jiri Slaby
2014-06-23  8:30 ` [PATCH 3.12 021/111] Documentation: fix DOCBOOKS=... building Jiri Slaby
2014-06-23  8:30 ` [PATCH 3.12 022/111] hwmon: (ntc_thermistor) Fix dependencies Jiri Slaby
2014-06-23  8:30 ` [PATCH 3.12 023/111] hwmon: (ntc_thermistor) Fix OF device ID mapping Jiri Slaby
2014-06-23  8:30 ` [PATCH 3.12 024/111] drm/gf119-/disp: fix nasty bug which can clobber SOR0's clock setup Jiri Slaby
2014-06-23  8:31 ` [PATCH 3.12 025/111] drm/radeon: also try GART for CPU accessed buffers Jiri Slaby
2014-06-23  8:31 ` [PATCH 3.12 026/111] drm/radeon: handle non-VGA class pci devices with ATRM Jiri Slaby
2014-06-23  8:31 ` [PATCH 3.12 027/111] SCSI: scsi_transport_sas: move bsg destructor into sas_rphy_remove Jiri Slaby
2014-06-23  8:31 ` [PATCH 3.12 028/111] ARM: imx: fix error handling in ipu device registration Jiri Slaby
2014-06-23  8:31 ` [PATCH 3.12 029/111] ARM: omap5: hwmod_data: Correct IDLEMODE for McPDM Jiri Slaby
2014-06-23  8:31 ` [PATCH 3.12 030/111] ARM: OMAP3: clock: Back-propagate rate change from cam_mclk to dpll4_m5 on all OMAP3 platforms Jiri Slaby
2014-06-23  8:31 ` [PATCH 3.12 031/111] ARM: 8051/1: put_user: fix possible data corruption in put_user Jiri Slaby
2014-06-23  8:31 ` [PATCH 3.12 032/111] ARM: 8064/1: fix v7-M signal return Jiri Slaby
2014-06-23  8:31 ` [PATCH 3.12 033/111] cpufreq: remove race while accessing cur_policy Jiri Slaby
2014-06-23  8:31 ` [PATCH 3.12 034/111] dm cache: always split discards on cache block boundaries Jiri Slaby
2014-06-23  8:31 ` [PATCH 3.12 035/111] sched: Fix hotplug vs. set_cpus_allowed_ptr() Jiri Slaby
2014-06-23  8:31 ` [PATCH 3.12 036/111] drm/radeon: avoid crash if VM command submission isn't available Jiri Slaby
2014-06-23  8:31 ` [PATCH 3.12 037/111] drm/i915: Only copy back the modified fields to userspace from execbuffer Jiri Slaby
2014-06-23  8:31 ` [PATCH 3.12 038/111] libata: Blacklist queued trim for Crucial M500 Jiri Slaby
2014-06-23  8:31 ` [PATCH 3.12 039/111] md: always set MD_RECOVERY_INTR when aborting a reshape or other "resync" Jiri Slaby
2014-06-23  8:31 ` [PATCH 3.12 040/111] md: always set MD_RECOVERY_INTR when interrupting a reshape thread Jiri Slaby
2014-06-23  8:31 ` [PATCH 3.12 041/111] xhci: delete endpoints from bandwidth list before freeing whole device Jiri Slaby
2014-06-23  8:31 ` [PATCH 3.12 042/111] Staging: speakup: Move pasting into a work item Jiri Slaby
2014-06-23  8:31 ` [PATCH 3.12 043/111] staging: comedi: ni_daq_700: add mux settling delay Jiri Slaby
2014-06-23  8:31 ` [PATCH 3.12 044/111] Staging: speakup: Update __speakup_paste_selection() tty (ab)usage to match vt Jiri Slaby
2014-06-23  8:31 ` [PATCH 3.12 045/111] ALSA: hda/analog - Fix silent output on ASUS A8JN Jiri Slaby
2014-06-23  8:31 ` [PATCH 3.12 046/111] ALSA: hda/realtek - Correction of fixup codes for PB V7900 laptop Jiri Slaby
2014-06-23  8:31 ` [PATCH 3.12 047/111] ALSA: hda/realtek - Fix COEF widget NID for ALC260 replacer fixup Jiri Slaby
2014-06-23  8:31 ` [PATCH 3.12 048/111] USB: ftdi_sio: add NovaTech OrionLXm product ID Jiri Slaby
2014-06-23  8:31 ` [PATCH 3.12 049/111] usb: cdc-wdm: export cdc-wdm uapi header Jiri Slaby
2014-06-23  8:31 ` [PATCH 3.12 050/111] USB: cdc-wdm: properly include types.h Jiri Slaby
2014-06-23  8:31 ` [PATCH 3.12 051/111] USB: serial: option: add support for Novatel E371 PCIe card Jiri Slaby
2014-06-23  8:31 ` [PATCH 3.12 052/111] USB: io_ti: fix firmware download on big-endian machines (part 2) Jiri Slaby
2014-06-23  8:31 ` [PATCH 3.12 053/111] usb: pci-quirks: Prevent Sony VAIO t-series from switching usb ports Jiri Slaby
2014-06-23  8:31 ` [PATCH 3.12 054/111] USB: Avoid runtime suspend loops for HCDs that can't handle suspend/resume Jiri Slaby
2014-06-23  8:31 ` [PATCH 3.12 055/111] percpu-refcount: fix usage of this_cpu_ops Jiri Slaby
2014-06-23  8:31 ` [PATCH 3.12 056/111] mm: rmap: fix use-after-free in __put_anon_vma Jiri Slaby
2014-06-23  8:31 ` [PATCH 3.12 057/111] iser-target: Add missing target_put_sess_cmd for ImmedateData failure Jiri Slaby
2014-06-23  8:31 ` [PATCH 3.12 058/111] target: Fix alua_access_state attribute OOPs for un-configured devices Jiri Slaby
2014-06-23  8:31 ` [PATCH 3.12 059/111] gpio: mcp23s08: Bug fix of SPI device tree registration Jiri Slaby
2014-06-23  8:31 ` [PATCH 3.12 060/111] [media] rtl28xxu: add 15f4:0131 Astrometa DVB-T2 Jiri Slaby
2014-06-23  8:31 ` [PATCH 3.12 061/111] [media] Add USB IDs for Winfast DTV Dongle Mini-D Jiri Slaby
2014-06-23  8:31 ` [PATCH 3.12 062/111] fs,userns: Change inode_capable to capable_wrt_inode_uidgid Jiri Slaby
2014-06-23  8:31 ` [PATCH 3.12 063/111] Target/iscsi,iser: Avoid accepting transport connections during stop stage Jiri Slaby
2014-06-23  8:31 ` [PATCH 3.12 064/111] iser-target: Fix multi network portal shutdown regression Jiri Slaby
2014-06-23  8:31 ` [PATCH 3.12 065/111] target: Allow READ_CAPACITY opcode in ALUA Standby access state Jiri Slaby
2014-06-23  8:31 ` [PATCH 3.12 066/111] auditsc: audit_krule mask accesses need bounds checking Jiri Slaby
2014-06-23  8:31 ` [PATCH 3.12 067/111] mei: me: drop harmful wait optimization Jiri Slaby
2014-06-23  8:31 ` [PATCH 3.12 068/111] rtl28xxu: add ID [0ccd:00b4] TerraTec NOXON DAB Stick (rev 3) Jiri Slaby
2014-06-23  8:31 ` [PATCH 3.12 069/111] rtl28xxu: add USB ID for Genius TVGo DVB-T03 Jiri Slaby
2014-06-23  8:31 ` [PATCH 3.12 070/111] rtl28xxu: add chipset version comments into device list Jiri Slaby
2014-06-23  8:31 ` [PATCH 3.12 071/111] rtl28xxu: add 1b80:d395 Peak DVB-T USB Jiri Slaby
2014-06-23  8:31 ` [PATCH 3.12 072/111] rtl28xxu: add [1b80:d39d] Sveon STV20 Jiri Slaby
2014-06-23  8:31 ` [PATCH 3.12 073/111] rtl28xxu: add [1b80:d3af] Sveon STV27 Jiri Slaby
2014-06-23  8:31 ` [PATCH 3.12 074/111] ahci: Add Device ID for HighPoint RocketRaid 642L Jiri Slaby
2014-06-23  8:31 ` [PATCH 3.12 075/111] ahci: add PCI ID for Marvell 88SE91A0 SATA Controller Jiri Slaby
2014-06-23  8:31 ` [PATCH 3.12 076/111] drm/i915: Allow user modes to exceed DVI 165MHz limit Jiri Slaby
2014-06-23  8:31 ` [PATCH 3.12 077/111] ima: audit log files opened with O_DIRECT flag Jiri Slaby
2014-06-23  8:31 ` [PATCH 3.12 078/111] skbuff: skb_segment: s/frag/nskb_frag/ Jiri Slaby
2014-06-23  8:31 ` [PATCH 3.12 079/111] skbuff: skb_segment: s/skb_frag/frag/ Jiri Slaby
2014-06-23  8:31 ` [PATCH 3.12 080/111] skbuff: skb_segment: s/skb/head_skb/ Jiri Slaby
2014-06-23  8:31 ` [PATCH 3.12 081/111] skbuff: skb_segment: s/fskb/list_skb/ Jiri Slaby
2014-06-23  8:31 ` [PATCH 3.12 082/111] skbuff: skb_segment: orphan frags before copying Jiri Slaby
2014-06-23  8:31 ` [PATCH 3.12 083/111] rtc: rtc-at91rm9200: fix infinite wait for ACKUPD irq Jiri Slaby
2014-06-23  8:31 ` [PATCH 3.12 084/111] iscsi-target: Reject mutual authentication with reflected CHAP_C Jiri Slaby
2014-06-23  8:32 ` [PATCH 3.12 085/111] ima: introduce ima_kernel_read() Jiri Slaby
2014-06-23  8:32 ` [PATCH 3.12 086/111] evm: prohibit userspace writing 'security.evm' HMAC value Jiri Slaby
2014-06-23  8:32 ` [PATCH 3.12 087/111] netlink: Rename netlink_capable netlink_allowed Jiri Slaby
2014-06-23  8:32 ` [PATCH 3.12 088/111] net: Move the permission check in sock_diag_put_filterinfo to packet_diag_dump Jiri Slaby
2014-06-23  8:32 ` [PATCH 3.12 089/111] net: Add variants of capable for use on on sockets Jiri Slaby
2014-06-23  8:32 ` [PATCH 3.12 090/111] net: Add variants of capable for use on netlink messages Jiri Slaby
2014-06-23  8:32 ` Jiri Slaby [this message]
2014-06-23  8:32 ` [PATCH 3.12 092/111] netlink: Only check file credentials for implicit destinations Jiri Slaby
2014-06-23  8:32 ` [PATCH 3.12 093/111] qlcnic: info leak in qlcnic_dcb_peer_app_info() Jiri Slaby
2014-06-23  8:32 ` [PATCH 3.12 094/111] netlink: rate-limit leftover bytes warning and print process name Jiri Slaby
2014-06-23  8:32 ` [PATCH 3.12 095/111] bridge: Prevent insertion of FDB entry with disallowed vlan Jiri Slaby
2014-06-23  8:32 ` [PATCH 3.12 096/111] net: tunnels - enable module autoloading Jiri Slaby
2014-06-23  8:32 ` [PATCH 3.12 097/111] net: fix inet_getid() and ipv6_select_ident() bugs Jiri Slaby
2014-06-23  8:32 ` [PATCH 3.12 098/111] team: fix mtu setting Jiri Slaby
2014-06-23  8:32 ` [PATCH 3.12 099/111] tcp: fix cwnd undo on DSACK in F-RTO Jiri Slaby
2014-06-23  8:32 ` [PATCH 3.12 100/111] sh_eth: use RNC mode for packet reception Jiri Slaby
2014-06-23  8:32 ` [PATCH 3.12 101/111] sh_eth: fix SH7619/771x support Jiri Slaby
2014-06-23  8:32 ` [PATCH 3.12 102/111] net: filter: fix typo in sparc BPF JIT Jiri Slaby
2014-06-23  8:32 ` [PATCH 3.12 103/111] net: filter: fix sparc32 typo Jiri Slaby
2014-06-23  8:32 ` [PATCH 3.12 104/111] net: qmi_wwan: add Olivetti Olicard modems Jiri Slaby
2014-06-23  8:32 ` [PATCH 3.12 105/111] net: force a list_del() in unregister_netdevice_many() Jiri Slaby
2014-06-23  8:32 ` [PATCH 3.12 106/111] ipip, sit: fix ipv4_{update_pmtu,redirect} calls Jiri Slaby
2014-06-23  8:32 ` [PATCH 3.12 107/111] ipv4: fix a race in ip4_datagram_release_cb() Jiri Slaby
2014-06-23  8:32 ` [PATCH 3.12 108/111] sctp: Fix sk_ack_backlog wrap-around problem Jiri Slaby
2014-06-23  8:32 ` [PATCH 3.12 109/111] rtnetlink: fix userspace API breakage for iproute2 < v3.9.0 Jiri Slaby
2014-06-23  8:32 ` [PATCH 3.12 110/111] vxlan: use dev->needed_headroom instead of dev->hard_header_len Jiri Slaby
2014-06-23  8:32 ` [PATCH 3.12 111/111] ARM: at91: fix at91_sysirq_mask_rtc for sam9x5 SoCs Jiri Slaby
2014-06-23 14:55 ` [PATCH 3.12 000/111] 3.12.23-stable review Guenter Roeck
2014-06-25 13:29   ` Jiri Slaby
2014-06-23 16:45 ` Shuah Khan
2014-06-23 22:13 ` Satoru Takeuchi

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=50b8b6e75fa0c08cef1e1ed30a7ab91f05bcb779.1403512281.git.jslaby@suse.cz \
    --to=jslaby@suse.cz \
    --cc=davem@davemloft.net \
    --cc=ebiederm@xmission.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=stable@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).