aboutsummaryrefslogtreecommitdiffstats
path: root/net/ipv6/tcp_ipv6.c
diff options
context:
space:
mode:
authorArnaldo Carvalho de Melo <acme@mandriva.com>2006-11-17 09:14:37 -0500
committerDavid S. Miller <davem@sunset.davemloft.net>2006-12-03 00:23:58 -0500
commitaf879cc704372ef762584e916129d19ffb39e844 (patch)
tree09b9cdb70bd6038513792b647b1c93332ce8ee14 /net/ipv6/tcp_ipv6.c
parentc67862403e28dd67f38e896736f063d8dd522688 (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.c9
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