diff mbox

[U-Boot] drivers: remoteproc: rproc-uclass: Fix check for NULL pointers

Message ID 1448942758-20424-1-git-send-email-nm@ti.com
State Accepted
Delegated to: Tom Rini
Headers show

Commit Message

Nishanth Menon Dec. 1, 2015, 4:05 a.m. UTC
Neither uc_pdata->name nor check_name are supposed to be NULL in
_rproc_name_is_unique(). if uc_pdata->name is NULL, we are not
intialized yet, however if check_data is NULL, we do not have
proper data. Further, if either were NULL, strlen will crap out
while attempting to derefence NULL.

Instead, just check if either of these are NULL and bail out.

This should also fix the following coverity scan warnings:
*** CID 132281:  Null pointer dereferences  (FORWARD_NULL)
/drivers/remoteproc/rproc-uclass.c: 73 in _rproc_name_is_unique()

Reported-by: Tom Rini <trini@konsulko.com>
Signed-off-by: Nishanth Menon <nm@ti.com>
---
Test log: http://pastebin.ubuntu.com/13591420/

 drivers/remoteproc/rproc-uclass.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Tom Rini Dec. 6, 2015, 10:07 p.m. UTC | #1
On Mon, Nov 30, 2015 at 10:05:58PM -0600, Nishanth Menon wrote:

> Neither uc_pdata->name nor check_name are supposed to be NULL in
> _rproc_name_is_unique(). if uc_pdata->name is NULL, we are not
> intialized yet, however if check_data is NULL, we do not have
> proper data. Further, if either were NULL, strlen will crap out
> while attempting to derefence NULL.
> 
> Instead, just check if either of these are NULL and bail out.
> 
> This should also fix the following coverity scan warnings:
> *** CID 132281:  Null pointer dereferences  (FORWARD_NULL)
> /drivers/remoteproc/rproc-uclass.c: 73 in _rproc_name_is_unique()
> 
> Reported-by: Tom Rini <trini@konsulko.com>
> Signed-off-by: Nishanth Menon <nm@ti.com>

Applied to u-boot/master, thanks!
diff mbox

Patch

diff --git a/drivers/remoteproc/rproc-uclass.c b/drivers/remoteproc/rproc-uclass.c
index a421e12e5d16..200cf61bc948 100644
--- a/drivers/remoteproc/rproc-uclass.c
+++ b/drivers/remoteproc/rproc-uclass.c
@@ -66,7 +66,7 @@  static int _rproc_name_is_unique(struct udevice *dev,
 	const char *check_name = data;
 
 	/* devices not yet populated with data - so skip them */
-	if (!uc_pdata->name && check_name)
+	if (!uc_pdata->name || !check_name)
 		return 0;
 
 	/* Return 0 to search further if we dont match */