summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSreeram Ramachandran <sreeram@google.com>2014-07-08 11:37:03 -0700
committerGerrit - the friendly Code Review server <code-review@localhost>2015-06-30 02:38:43 -0700
commit5531c1d466e904a7f4efef30c9af79fe92a3de57 (patch)
tree0b08ded752596912ab837ddc7f88e04ae0044aea
parent4fb9a0ed1338c51898f3b89836895bd583a7b7b4 (diff)
downloadqcom-5531c1d466e904a7f4efef30c9af79fe92a3de57.tar.gz
Handle 'sk' being NULL in UID-based routing.
Bug: 15413527 Change-Id: If33bebb7b52c0ebfa8dac2452607bce0c2b0faa0 Signed-off-by: Sreeram Ramachandran <sreeram@google.com> Git-commit: 0836a0c191f580ed69254e0b287cdce58481e978 Git-repo: https://android.googlesource.com/kernel/common.git [imaund@codeaurora.org: Additional ternary added to prevent dereferencing NULL in QCOM code.] Signed-off-by: Ian Maund <imaund@codeaurora.org>
-rw-r--r--include/net/route.h2
-rw-r--r--net/ipv4/route.c3
2 files changed, 3 insertions, 2 deletions
diff --git a/include/net/route.h b/include/net/route.h
index c4de78a7018..43280f6fa56 100644
--- a/include/net/route.h
+++ b/include/net/route.h
@@ -143,7 +143,7 @@ static inline struct rtable *ip_route_output_ports(struct net *net, struct flowi
flowi4_init_output(fl4, oif, sk ? sk->sk_mark : 0, tos,
RT_SCOPE_UNIVERSE, proto,
sk ? inet_sk_flowi_flags(sk) : 0,
- daddr, saddr, dport, sport, sock_i_uid(sk));
+ daddr, saddr, dport, sport, sk ? sock_i_uid(sk) : 0);
if (sk)
security_sk_classify_flow(sk, flowi4_to_flowi(fl4));
return ip_route_output_flow(net, fl4, sk);
diff --git a/net/ipv4/route.c b/net/ipv4/route.c
index 3a3042b72b9..b55673aec42 100644
--- a/net/ipv4/route.c
+++ b/net/ipv4/route.c
@@ -516,7 +516,8 @@ static void __build_flow_key(struct flowi4 *fl4, struct sock *sk,
flowi4_init_output(fl4, oif, mark, tos,
RT_SCOPE_UNIVERSE, prot,
flow_flags,
- iph->daddr, iph->saddr, 0, 0, sock_i_uid(sk));
+ iph->daddr, iph->saddr, 0, 0,
+ sk ? sock_i_uid(sk) : 0);
}
static void build_skb_flow_key(struct flowi4 *fl4, const struct sk_buff *skb,