diff options
author | Arnaldo Carvalho de Melo <acme@mandriva.com> | 2006-11-17 09:14:37 -0500 |
---|---|---|
committer | David S. Miller <davem@sunset.davemloft.net> | 2006-12-03 00:23:58 -0500 |
commit | af879cc704372ef762584e916129d19ffb39e844 (patch) | |
tree | 09b9cdb70bd6038513792b647b1c93332ce8ee14 /net/ipv6/tcp_ipv6.c | |
parent | c67862403e28dd67f38e896736f063d8dd522688 (diff) |
[IPV6]: Use kmemdup
Code diff stats:
[acme@newtoy net-2.6.20]$ codiff /tmp/ipv6.ko.before /tmp/ipv6.ko.after
/pub/scm/linux/kernel/git/acme/net-2.6.20/net/ipv6/ip6_output.c:
ip6_output | -52
ip6_append_data | +2
2 functions changed, 2 bytes added, 52 bytes removed
/pub/scm/linux/kernel/git/acme/net-2.6.20/net/ipv6/addrconf.c:
addrconf_sysctl_register | -27
1 function changed, 27 bytes removed
/pub/scm/linux/kernel/git/acme/net-2.6.20/net/ipv6/tcp_ipv6.c:
tcp_v6_syn_recv_sock | -32
tcp_v6_parse_md5_keys | -24
2 functions changed, 56 bytes removed
/tmp/ipv6.ko.after:
5 functions changed, 2 bytes added, 135 bytes removed
[acme@newtoy net-2.6.20]$
Signed-off-by: Arnaldo Carvalho de Melo <acme@mandriva.com>
Diffstat (limited to 'net/ipv6/tcp_ipv6.c')
-rw-r--r-- | net/ipv6/tcp_ipv6.c | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/net/ipv6/tcp_ipv6.c b/net/ipv6/tcp_ipv6.c index 147ce499f509..d2170da77e5b 100644 --- a/net/ipv6/tcp_ipv6.c +++ b/net/ipv6/tcp_ipv6.c | |||
@@ -720,10 +720,9 @@ static int tcp_v6_parse_md5_keys (struct sock *sk, char __user *optval, | |||
720 | tp->md5sig_info = p; | 720 | tp->md5sig_info = p; |
721 | } | 721 | } |
722 | 722 | ||
723 | newkey = kmalloc(cmd.tcpm_keylen, GFP_KERNEL); | 723 | newkey = kmemdup(cmd.tcpm_key, cmd.tcpm_keylen, GFP_KERNEL); |
724 | if (!newkey) | 724 | if (!newkey) |
725 | return -ENOMEM; | 725 | return -ENOMEM; |
726 | memcpy(newkey, cmd.tcpm_key, cmd.tcpm_keylen); | ||
727 | if (ipv6_addr_type(&sin6->sin6_addr) & IPV6_ADDR_MAPPED) { | 726 | if (ipv6_addr_type(&sin6->sin6_addr) & IPV6_ADDR_MAPPED) { |
728 | return tcp_v4_md5_do_add(sk, sin6->sin6_addr.s6_addr32[3], | 727 | return tcp_v4_md5_do_add(sk, sin6->sin6_addr.s6_addr32[3], |
729 | newkey, cmd.tcpm_keylen); | 728 | newkey, cmd.tcpm_keylen); |
@@ -1503,12 +1502,10 @@ static struct sock * tcp_v6_syn_recv_sock(struct sock *sk, struct sk_buff *skb, | |||
1503 | * memory, then we end up not copying the key | 1502 | * memory, then we end up not copying the key |
1504 | * across. Shucks. | 1503 | * across. Shucks. |
1505 | */ | 1504 | */ |
1506 | char *newkey = kmalloc(key->keylen, GFP_ATOMIC); | 1505 | char *newkey = kmemdup(key->key, key->keylen, GFP_ATOMIC); |
1507 | if (newkey) { | 1506 | if (newkey != NULL) |
1508 | memcpy(newkey, key->key, key->keylen); | ||
1509 | tcp_v6_md5_do_add(newsk, &inet6_sk(sk)->daddr, | 1507 | tcp_v6_md5_do_add(newsk, &inet6_sk(sk)->daddr, |
1510 | newkey, key->keylen); | 1508 | newkey, key->keylen); |
1511 | } | ||
1512 | } | 1509 | } |
1513 | #endif | 1510 | #endif |
1514 | 1511 | ||