summary refs log tree commit diff
path: root/net/ipv6/seg6_local.c
diff options
context:
space:
mode:
authorYueHaibing <yuehaibing@huawei.com>2018-07-23 16:33:19 +0800
committerDavid S. Miller <davem@davemloft.net>2018-07-23 09:39:07 -0700
commit7fa41efac14ffbe8db7660ad2da3928969d10caf (patch)
treeb051350ed5159074f9061128e528d7167fe9b1f4 /net/ipv6/seg6_local.c
parentf8b2990fd91ecf66ee030da26de8336b28d3e1aa (diff)
downloadlinux-7fa41efac14ffbe8db7660ad2da3928969d10caf.tar.gz
ipv6: sr: Use kmemdup instead of duplicating it in parse_nla_srh
Replace calls to kmalloc followed by a memcpy with a direct call to
kmemdup.

Signed-off-by: YueHaibing <yuehaibing@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv6/seg6_local.c')
-rw-r--r--net/ipv6/seg6_local.c4
1 files changed, 1 insertions, 3 deletions
diff --git a/net/ipv6/seg6_local.c b/net/ipv6/seg6_local.c
index cd6e4cab63f6..e1025b493a18 100644
--- a/net/ipv6/seg6_local.c
+++ b/net/ipv6/seg6_local.c
@@ -637,12 +637,10 @@ static int parse_nla_srh(struct nlattr **attrs, struct seg6_local_lwt *slwt)
 	if (!seg6_validate_srh(srh, len))
 		return -EINVAL;
 
-	slwt->srh = kmalloc(len, GFP_KERNEL);
+	slwt->srh = kmemdup(srh, len, GFP_KERNEL);
 	if (!slwt->srh)
 		return -ENOMEM;
 
-	memcpy(slwt->srh, srh, len);
-
 	slwt->headroom += len;
 
 	return 0;