netfilter:ipvs: use kmemdup
The semantic patch that makes this output is available in scripts/coccinelle/api/memdup.cocci. More information about semantic patching is available at http://coccinelle.lip6.fr/ Signed-off-by: Shan Wei <shanwei@cn.fujitsu.com> Signed-off-by: Simon Horman <horms@verge.net.au>
This commit is contained in:
@@ -92,14 +92,13 @@ ip_vs_sip_fill_param(struct ip_vs_conn_param *p, struct sk_buff *skb)
|
|||||||
if (get_callid(dptr, dataoff, datalen, &matchoff, &matchlen))
|
if (get_callid(dptr, dataoff, datalen, &matchoff, &matchlen))
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
||||||
p->pe_data = kmalloc(matchlen, GFP_ATOMIC);
|
|
||||||
if (!p->pe_data)
|
|
||||||
return -ENOMEM;
|
|
||||||
|
|
||||||
/* N.B: pe_data is only set on success,
|
/* N.B: pe_data is only set on success,
|
||||||
* this allows fallback to the default persistence logic on failure
|
* this allows fallback to the default persistence logic on failure
|
||||||
*/
|
*/
|
||||||
memcpy(p->pe_data, dptr + matchoff, matchlen);
|
p->pe_data = kmemdup(dptr + matchoff, matchlen, GFP_ATOMIC);
|
||||||
|
if (!p->pe_data)
|
||||||
|
return -ENOMEM;
|
||||||
|
|
||||||
p->pe_data_len = matchlen;
|
p->pe_data_len = matchlen;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
@@ -697,13 +697,12 @@ ip_vs_conn_fill_param_sync(struct net *net, int af, union ip_vs_sync_conn *sc,
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
p->pe_data = kmalloc(pe_data_len, GFP_ATOMIC);
|
p->pe_data = kmemdup(pe_data, pe_data_len, GFP_ATOMIC);
|
||||||
if (!p->pe_data) {
|
if (!p->pe_data) {
|
||||||
if (p->pe->module)
|
if (p->pe->module)
|
||||||
module_put(p->pe->module);
|
module_put(p->pe->module);
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
}
|
}
|
||||||
memcpy(p->pe_data, pe_data, pe_data_len);
|
|
||||||
p->pe_data_len = pe_data_len;
|
p->pe_data_len = pe_data_len;
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
|
Reference in New Issue
Block a user