Re: [PATCH v3 1/3] gianfar: Less function calls in gfar_ethflow_to_filer_table() after error detection
From: Joe Perches
Date: Fri Jan 15 2016 - 05:37:22 EST
On Fri, 2016-01-15 at 11:11 +0100, SF Markus Elfring wrote:
> The kfree() function was called in one case by the
> gfar_ethflow_to_filer_table() function during error handling
> even if a passed variable contained a null pointer.
>
> * Return directly if a memory allocation failed at the beginning.
>
> * Adjust jump targets according to the Linux coding style convention.
>
> This issue was detected by using the Coccinelle software.
Is this really better?
Perhaps this particular static analysis isn't too useful.
Why not just allocate once and assign a second pointer?
local_rqfpr = kmalloc_array(2 * (MAX_FILER_IDX + 1),
sizeof(unsigned int), GFP_KERNEL);
if (!local_rqfpr)
goto err;
local_rqfcr = &local_rqfpr[MAX_FILER_IDX + 1];
Perhaps this would be better removing the ret variable
and using something like:
int gfar_ethflow_to_filer_table(...)
{
...
return 0;
err:
kfree(local_rqfpt);
return 1;
}