]> git.karo-electronics.de Git - linux-beck.git/commitdiff
staging/sep: Fix smatch false positive about potential NULL dereference in sep_main.c
authorPeter Huewe <peterhuewe@gmx.de>
Tue, 19 Feb 2013 12:07:27 +0000 (13:07 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 11 Mar 2013 16:15:31 +0000 (09:15 -0700)
Smatch complains about a potential NULL pointer dereference:

sep_main.c:2312 sep_construct_dma_tables_from_lli() error: potential
NULL dereference 'info_out_entry_ptr'.

info_out_entry_ptr is initialized with NULL and if info_in_entry_ptr is
not NULL it gets derefenced.
However info_out_entry_ptr is only NULL in the first iteration of the
while loop and in this case info_in_entry_ptr is also NULL (as indicated
by the comment /* If info entry is null - this is the first table built */
-> this is a false positive.

Nevertheless we add a check for info_out_entry_ptr to silence this
warning and make it more robust in regard to code changes.

Signed-off-by: Peter Huewe <peterhuewe@gmx.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/sep/sep_main.c

index 30e8d25113e4ab09cf331c6859f8493b521c417d..366d56b9a255e1691af9d1d9048da7263104e72a 100644 (file)
@@ -2276,7 +2276,7 @@ static int sep_construct_dma_tables_from_lli(
                        table_data_size);
 
                /* If info entry is null - this is the first table built */
-               if (info_in_entry_ptr == NULL) {
+               if (info_in_entry_ptr == NULL || info_out_entry_ptr == NULL) {
                        /* Set the output parameters to physical addresses */
                        *lli_table_in_ptr =
                        sep_shared_area_virt_to_bus(sep, dma_in_lli_table_ptr);