[IPV6]: Nearly complete kzalloc cleanup for net/ipv6
Stupidly use kzalloc() instead of kmalloc()/memset() everywhere where this is possible in net/ipv6/*.c . Signed-off-by: Ingo Oeser <ioe-lkml@rameria.de> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
78c784c47a
commit
0c600eda4b
@ -354,12 +354,10 @@ static int ah6_init_state(struct xfrm_state *x)
|
|||||||
if (x->encap)
|
if (x->encap)
|
||||||
goto error;
|
goto error;
|
||||||
|
|
||||||
ahp = kmalloc(sizeof(*ahp), GFP_KERNEL);
|
ahp = kzalloc(sizeof(*ahp), GFP_KERNEL);
|
||||||
if (ahp == NULL)
|
if (ahp == NULL)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
|
||||||
memset(ahp, 0, sizeof(*ahp));
|
|
||||||
|
|
||||||
ahp->key = x->aalg->alg_key;
|
ahp->key = x->aalg->alg_key;
|
||||||
ahp->key_len = (x->aalg->alg_key_len+7)/8;
|
ahp->key_len = (x->aalg->alg_key_len+7)/8;
|
||||||
ahp->tfm = crypto_alloc_tfm(x->aalg->alg_name, 0);
|
ahp->tfm = crypto_alloc_tfm(x->aalg->alg_name, 0);
|
||||||
|
@ -308,7 +308,7 @@ int ipv6_dev_ac_inc(struct net_device *dev, struct in6_addr *addr)
|
|||||||
* not found: create a new one.
|
* not found: create a new one.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
aca = kmalloc(sizeof(struct ifacaddr6), GFP_ATOMIC);
|
aca = kzalloc(sizeof(struct ifacaddr6), GFP_ATOMIC);
|
||||||
|
|
||||||
if (aca == NULL) {
|
if (aca == NULL) {
|
||||||
err = -ENOMEM;
|
err = -ENOMEM;
|
||||||
@ -322,8 +322,6 @@ int ipv6_dev_ac_inc(struct net_device *dev, struct in6_addr *addr)
|
|||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
memset(aca, 0, sizeof(struct ifacaddr6));
|
|
||||||
|
|
||||||
ipv6_addr_copy(&aca->aca_addr, addr);
|
ipv6_addr_copy(&aca->aca_addr, addr);
|
||||||
aca->aca_idev = idev;
|
aca->aca_idev = idev;
|
||||||
aca->aca_rt = rt;
|
aca->aca_rt = rt;
|
||||||
@ -550,7 +548,7 @@ static int ac6_seq_open(struct inode *inode, struct file *file)
|
|||||||
{
|
{
|
||||||
struct seq_file *seq;
|
struct seq_file *seq;
|
||||||
int rc = -ENOMEM;
|
int rc = -ENOMEM;
|
||||||
struct ac6_iter_state *s = kmalloc(sizeof(*s), GFP_KERNEL);
|
struct ac6_iter_state *s = kzalloc(sizeof(*s), GFP_KERNEL);
|
||||||
|
|
||||||
if (!s)
|
if (!s)
|
||||||
goto out;
|
goto out;
|
||||||
@ -561,7 +559,6 @@ static int ac6_seq_open(struct inode *inode, struct file *file)
|
|||||||
|
|
||||||
seq = file->private_data;
|
seq = file->private_data;
|
||||||
seq->private = s;
|
seq->private = s;
|
||||||
memset(s, 0, sizeof(*s));
|
|
||||||
out:
|
out:
|
||||||
return rc;
|
return rc;
|
||||||
out_kfree:
|
out_kfree:
|
||||||
|
@ -305,12 +305,10 @@ static int esp6_init_state(struct xfrm_state *x)
|
|||||||
if (x->encap)
|
if (x->encap)
|
||||||
goto error;
|
goto error;
|
||||||
|
|
||||||
esp = kmalloc(sizeof(*esp), GFP_KERNEL);
|
esp = kzalloc(sizeof(*esp), GFP_KERNEL);
|
||||||
if (esp == NULL)
|
if (esp == NULL)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
|
||||||
memset(esp, 0, sizeof(*esp));
|
|
||||||
|
|
||||||
if (x->aalg) {
|
if (x->aalg) {
|
||||||
struct xfrm_algo_desc *aalg_desc;
|
struct xfrm_algo_desc *aalg_desc;
|
||||||
|
|
||||||
|
@ -287,10 +287,9 @@ fl_create(struct in6_flowlabel_req *freq, char __user *optval, int optlen, int *
|
|||||||
int err;
|
int err;
|
||||||
|
|
||||||
err = -ENOMEM;
|
err = -ENOMEM;
|
||||||
fl = kmalloc(sizeof(*fl), GFP_KERNEL);
|
fl = kzalloc(sizeof(*fl), GFP_KERNEL);
|
||||||
if (fl == NULL)
|
if (fl == NULL)
|
||||||
goto done;
|
goto done;
|
||||||
memset(fl, 0, sizeof(*fl));
|
|
||||||
|
|
||||||
olen = optlen - CMSG_ALIGN(sizeof(*freq));
|
olen = optlen - CMSG_ALIGN(sizeof(*freq));
|
||||||
if (olen > 0) {
|
if (olen > 0) {
|
||||||
@ -663,7 +662,7 @@ static int ip6fl_seq_open(struct inode *inode, struct file *file)
|
|||||||
{
|
{
|
||||||
struct seq_file *seq;
|
struct seq_file *seq;
|
||||||
int rc = -ENOMEM;
|
int rc = -ENOMEM;
|
||||||
struct ip6fl_iter_state *s = kmalloc(sizeof(*s), GFP_KERNEL);
|
struct ip6fl_iter_state *s = kzalloc(sizeof(*s), GFP_KERNEL);
|
||||||
|
|
||||||
if (!s)
|
if (!s)
|
||||||
goto out;
|
goto out;
|
||||||
@ -674,7 +673,6 @@ static int ip6fl_seq_open(struct inode *inode, struct file *file)
|
|||||||
|
|
||||||
seq = file->private_data;
|
seq = file->private_data;
|
||||||
seq->private = s;
|
seq->private = s;
|
||||||
memset(s, 0, sizeof(*s));
|
|
||||||
out:
|
out:
|
||||||
return rc;
|
return rc;
|
||||||
out_kfree:
|
out_kfree:
|
||||||
|
@ -428,11 +428,10 @@ static int ipcomp6_init_state(struct xfrm_state *x)
|
|||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
err = -ENOMEM;
|
err = -ENOMEM;
|
||||||
ipcd = kmalloc(sizeof(*ipcd), GFP_KERNEL);
|
ipcd = kzalloc(sizeof(*ipcd), GFP_KERNEL);
|
||||||
if (!ipcd)
|
if (!ipcd)
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
memset(ipcd, 0, sizeof(*ipcd));
|
|
||||||
x->props.header_len = 0;
|
x->props.header_len = 0;
|
||||||
if (x->props.mode)
|
if (x->props.mode)
|
||||||
x->props.header_len += sizeof(struct ipv6hdr);
|
x->props.header_len += sizeof(struct ipv6hdr);
|
||||||
|
@ -767,10 +767,10 @@ static void mld_add_delrec(struct inet6_dev *idev, struct ifmcaddr6 *im)
|
|||||||
* for deleted items allows change reports to use common code with
|
* for deleted items allows change reports to use common code with
|
||||||
* non-deleted or query-response MCA's.
|
* non-deleted or query-response MCA's.
|
||||||
*/
|
*/
|
||||||
pmc = kmalloc(sizeof(*pmc), GFP_ATOMIC);
|
pmc = kzalloc(sizeof(*pmc), GFP_ATOMIC);
|
||||||
if (!pmc)
|
if (!pmc)
|
||||||
return;
|
return;
|
||||||
memset(pmc, 0, sizeof(*pmc));
|
|
||||||
spin_lock_bh(&im->mca_lock);
|
spin_lock_bh(&im->mca_lock);
|
||||||
spin_lock_init(&pmc->mca_lock);
|
spin_lock_init(&pmc->mca_lock);
|
||||||
pmc->idev = im->idev;
|
pmc->idev = im->idev;
|
||||||
@ -893,7 +893,7 @@ int ipv6_dev_mc_inc(struct net_device *dev, struct in6_addr *addr)
|
|||||||
* not found: create a new one.
|
* not found: create a new one.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
mc = kmalloc(sizeof(struct ifmcaddr6), GFP_ATOMIC);
|
mc = kzalloc(sizeof(struct ifmcaddr6), GFP_ATOMIC);
|
||||||
|
|
||||||
if (mc == NULL) {
|
if (mc == NULL) {
|
||||||
write_unlock_bh(&idev->lock);
|
write_unlock_bh(&idev->lock);
|
||||||
@ -901,7 +901,6 @@ int ipv6_dev_mc_inc(struct net_device *dev, struct in6_addr *addr)
|
|||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
}
|
}
|
||||||
|
|
||||||
memset(mc, 0, sizeof(struct ifmcaddr6));
|
|
||||||
init_timer(&mc->mca_timer);
|
init_timer(&mc->mca_timer);
|
||||||
mc->mca_timer.function = igmp6_timer_handler;
|
mc->mca_timer.function = igmp6_timer_handler;
|
||||||
mc->mca_timer.data = (unsigned long) mc;
|
mc->mca_timer.data = (unsigned long) mc;
|
||||||
@ -1934,10 +1933,10 @@ static int ip6_mc_add1_src(struct ifmcaddr6 *pmc, int sfmode,
|
|||||||
psf_prev = psf;
|
psf_prev = psf;
|
||||||
}
|
}
|
||||||
if (!psf) {
|
if (!psf) {
|
||||||
psf = kmalloc(sizeof(*psf), GFP_ATOMIC);
|
psf = kzalloc(sizeof(*psf), GFP_ATOMIC);
|
||||||
if (!psf)
|
if (!psf)
|
||||||
return -ENOBUFS;
|
return -ENOBUFS;
|
||||||
memset(psf, 0, sizeof(*psf));
|
|
||||||
psf->sf_addr = *psfsrc;
|
psf->sf_addr = *psfsrc;
|
||||||
if (psf_prev) {
|
if (psf_prev) {
|
||||||
psf_prev->sf_next = psf;
|
psf_prev->sf_next = psf;
|
||||||
@ -2431,7 +2430,7 @@ static int igmp6_mc_seq_open(struct inode *inode, struct file *file)
|
|||||||
{
|
{
|
||||||
struct seq_file *seq;
|
struct seq_file *seq;
|
||||||
int rc = -ENOMEM;
|
int rc = -ENOMEM;
|
||||||
struct igmp6_mc_iter_state *s = kmalloc(sizeof(*s), GFP_KERNEL);
|
struct igmp6_mc_iter_state *s = kzalloc(sizeof(*s), GFP_KERNEL);
|
||||||
|
|
||||||
if (!s)
|
if (!s)
|
||||||
goto out;
|
goto out;
|
||||||
@ -2442,7 +2441,6 @@ static int igmp6_mc_seq_open(struct inode *inode, struct file *file)
|
|||||||
|
|
||||||
seq = file->private_data;
|
seq = file->private_data;
|
||||||
seq->private = s;
|
seq->private = s;
|
||||||
memset(s, 0, sizeof(*s));
|
|
||||||
out:
|
out:
|
||||||
return rc;
|
return rc;
|
||||||
out_kfree:
|
out_kfree:
|
||||||
@ -2606,7 +2604,7 @@ static int igmp6_mcf_seq_open(struct inode *inode, struct file *file)
|
|||||||
{
|
{
|
||||||
struct seq_file *seq;
|
struct seq_file *seq;
|
||||||
int rc = -ENOMEM;
|
int rc = -ENOMEM;
|
||||||
struct igmp6_mcf_iter_state *s = kmalloc(sizeof(*s), GFP_KERNEL);
|
struct igmp6_mcf_iter_state *s = kzalloc(sizeof(*s), GFP_KERNEL);
|
||||||
|
|
||||||
if (!s)
|
if (!s)
|
||||||
goto out;
|
goto out;
|
||||||
@ -2617,7 +2615,6 @@ static int igmp6_mcf_seq_open(struct inode *inode, struct file *file)
|
|||||||
|
|
||||||
seq = file->private_data;
|
seq = file->private_data;
|
||||||
seq->private = s;
|
seq->private = s;
|
||||||
memset(s, 0, sizeof(*s));
|
|
||||||
out:
|
out:
|
||||||
return rc;
|
return rc;
|
||||||
out_kfree:
|
out_kfree:
|
||||||
|
@ -1198,7 +1198,7 @@ static int raw6_seq_open(struct inode *inode, struct file *file)
|
|||||||
{
|
{
|
||||||
struct seq_file *seq;
|
struct seq_file *seq;
|
||||||
int rc = -ENOMEM;
|
int rc = -ENOMEM;
|
||||||
struct raw6_iter_state *s = kmalloc(sizeof(*s), GFP_KERNEL);
|
struct raw6_iter_state *s = kzalloc(sizeof(*s), GFP_KERNEL);
|
||||||
if (!s)
|
if (!s)
|
||||||
goto out;
|
goto out;
|
||||||
rc = seq_open(file, &raw6_seq_ops);
|
rc = seq_open(file, &raw6_seq_ops);
|
||||||
@ -1206,7 +1206,6 @@ static int raw6_seq_open(struct inode *inode, struct file *file)
|
|||||||
goto out_kfree;
|
goto out_kfree;
|
||||||
seq = file->private_data;
|
seq = file->private_data;
|
||||||
seq->private = s;
|
seq->private = s;
|
||||||
memset(s, 0, sizeof(*s));
|
|
||||||
out:
|
out:
|
||||||
return rc;
|
return rc;
|
||||||
out_kfree:
|
out_kfree:
|
||||||
|
@ -1877,11 +1877,10 @@ int inet6_dump_fib(struct sk_buff *skb, struct netlink_callback *cb)
|
|||||||
/*
|
/*
|
||||||
* 2. allocate and initialize walker.
|
* 2. allocate and initialize walker.
|
||||||
*/
|
*/
|
||||||
w = kmalloc(sizeof(*w), GFP_ATOMIC);
|
w = kzalloc(sizeof(*w), GFP_ATOMIC);
|
||||||
if (w == NULL)
|
if (w == NULL)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
RT6_TRACE("dump<%p", w);
|
RT6_TRACE("dump<%p", w);
|
||||||
memset(w, 0, sizeof(*w));
|
|
||||||
w->root = &ip6_routing_table;
|
w->root = &ip6_routing_table;
|
||||||
w->func = fib6_dump_node;
|
w->func = fib6_dump_node;
|
||||||
w->args = &arg;
|
w->args = &arg;
|
||||||
|
Loading…
Reference in New Issue
Block a user