[PATCH net] ipv6: seg6_genl_set_tunsrc() must check kmemdup() return value

Subsystems: networking [general], networking [srv6], the rest

STALE3504d

3 messages, 3 authors, 2017-01-20 · open the first message on its own page

[PATCH net] ipv6: seg6_genl_set_tunsrc() must check kmemdup() return value

From: Eric Dumazet <hidden>
Date: 2017-01-20 15:58:41

From: Eric Dumazet <edumazet@google.com>

seg6_genl_get_tunsrc() and set_tun_src() do not handle tun_src being
possibly NULL, so we must check kmemdup() return value and abort if
it is NULL

Fixes: 915d7e5e5930 ("ipv6: sr: add code base for control plane support of SR-IPv6")
Signed-off-by: Eric Dumazet <edumazet@google.com>
Cc: David Lebrun <redacted>
---
 net/ipv6/seg6.c |    2 ++
 1 file changed, 2 insertions(+)
diff --git a/net/ipv6/seg6.c b/net/ipv6/seg6.c
index b172d85c650a376f541ea05d72046c76b8404303..a855eb325b030a666fe92c56a2d432c77d9dfe7a 100644
--- a/net/ipv6/seg6.c
+++ b/net/ipv6/seg6.c
@@ -176,6 +176,8 @@ static int seg6_genl_set_tunsrc(struct sk_buff *skb, struct genl_info *info)
 
 	val = nla_data(info->attrs[SEG6_ATTR_DST]);
 	t_new = kmemdup(val, sizeof(*val), GFP_KERNEL);
+	if (!t_new)
+		return -ENOMEM;
 
 	mutex_lock(&sdata->lock);
 

Re: [PATCH net] ipv6: seg6_genl_set_tunsrc() must check kmemdup() return value

From: David Lebrun <hidden>
Date: 2017-01-20 16:05:45

On 01/20/2017 04:57 PM, Eric Dumazet wrote:
quoted hunk
From: Eric Dumazet <edumazet@google.com>

seg6_genl_get_tunsrc() and set_tun_src() do not handle tun_src being
possibly NULL, so we must check kmemdup() return value and abort if
it is NULL

Fixes: 915d7e5e5930 ("ipv6: sr: add code base for control plane support of SR-IPv6")
Signed-off-by: Eric Dumazet <edumazet@google.com>
Cc: David Lebrun <redacted>
---
 net/ipv6/seg6.c |    2 ++
 1 file changed, 2 insertions(+)
diff --git a/net/ipv6/seg6.c b/net/ipv6/seg6.c
index b172d85c650a376f541ea05d72046c76b8404303..a855eb325b030a666fe92c56a2d432c77d9dfe7a 100644
--- a/net/ipv6/seg6.c
+++ b/net/ipv6/seg6.c
@@ -176,6 +176,8 @@ static int seg6_genl_set_tunsrc(struct sk_buff *skb, struct genl_info *info)
 
 	val = nla_data(info->attrs[SEG6_ATTR_DST]);
 	t_new = kmemdup(val, sizeof(*val), GFP_KERNEL);
+	if (!t_new)
+		return -ENOMEM;
 
 	mutex_lock(&sdata->lock);
 
Thanks :)

Acked-by: David Lebrun <redacted>

Re: [PATCH net] ipv6: seg6_genl_set_tunsrc() must check kmemdup() return value

From: David Miller <davem@davemloft.net>
Date: 2017-01-20 16:09:50

From: Eric Dumazet <redacted>
Date: Fri, 20 Jan 2017 07:57:42 -0800
From: Eric Dumazet <edumazet@google.com>

seg6_genl_get_tunsrc() and set_tun_src() do not handle tun_src being
possibly NULL, so we must check kmemdup() return value and abort if
it is NULL

Fixes: 915d7e5e5930 ("ipv6: sr: add code base for control plane support of SR-IPv6")
Signed-off-by: Eric Dumazet <edumazet@google.com>
Applied, thanks Eric.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help