When mdio_register fails, mdio_free should be called on the mdiodev that
was previously allocated with mdio_alloc.
Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
strncpy() simply bails out when copying a source string whose size
exceeds the destination string size, potentially leaving the destination
string unterminated.
One possible way to address is to pass MDIO_NAME_LEN - 1 and a
previously zero-initialized destination string, but this is more
difficult to maintain.
The chosen alternative is to use strlcpy(), which properly limits the
copy len in the (srclen >= size) case to "size - 1", and which is also
more efficient than the strncpy() byte-by-byte implementation by using
memcpy. The destination string returned by strlcpy() is always NULL
terminated.
Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
The free() function checks if its argument is NULL. We should avoid
checking for NULL before calling free like in
if (result->tds)
free(result->tds);
The list of relevant functions differs between Linux and U-Boot, e.g. we
use free().
Adjust the list of relevant functions.
Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Casting the (void *) output of memory allocation functions before
assignment like in
sata->cmd_hdr_tbl_offset = (void *)malloc(length + align);
is useless.
Adopt the Linux kernel script
scripts/coccinelle/api/alloc/alloc_cast.cocci.
Now 'make coccicheck' generates warnings like:
./drivers/ata/fsl_sata.c:143:29-33:
WARNING: casting value returned by memory allocation function
to (void *) is useless.
Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
kmerr: verify that malloc and calloc are followed by a check to verify
that we are not out of memory.
badzero: Compare pointer-typed values to NULL rather than 0
Both checks are copied from the Linux kernel archive.
Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Add some useful static code analysis scripts for coccinelle
copied from the Linux kernel v4.14-rc8:
Warn on check against NULL before calling free.
scripts/coccinelle/free/ifnullfree.cocci
Detect superfluous NULL check for list iterator.
scripts/coccinelle/iterators/itnull.cocci
Check if list iterator is reassigned.
scripts/coccinelle/iterators/list_entry_update.cocci
Check if list iterator is used after loop.
scripts/coccinelle/iterators/use_after_iter.cocci
Find wrong argument of sizeof in allocation function:
scripts/coccinelle/misc/badty.cocci
Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Many Ethernet drivers still use the legacy miiphy API to register their
mdio interface for access to the mdio commands.
This semantic patch will convert the drivers from the legacy adapter API
to the more modern alloc/register API.
Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>