diff mbox series

[1/1] fs/squashfs: parameter check sqfs_read_metablock()

Message ID 20200923191351.33474-1-xypron.glpk@gmx.de
State Accepted
Commit 0ed375ebb13f8b2d69400b9df8985c8123d3fbb1
Delegated to: Tom Rini
Headers show
Series [1/1] fs/squashfs: parameter check sqfs_read_metablock() | expand

Commit Message

Heinrich Schuchardt Sept. 23, 2020, 7:13 p.m. UTC
We should check if the incoming parameter file_mapping is not NULL instead
of checking after adding an offset.

Reported-by: Coverity CID 307210
Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
---
 fs/squashfs/sqfs_inode.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

--
2.28.0

Comments

Thomas Petazzoni Sept. 23, 2020, 7:49 p.m. UTC | #1
On Wed, 23 Sep 2020 21:13:51 +0200
Heinrich Schuchardt <xypron.glpk@gmx.de> wrote:

> We should check if the incoming parameter file_mapping is not NULL instead
> of checking after adding an offset.
> 
> Reported-by: Coverity CID 307210
> Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>

Acked-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>

However, I wonder if this check is really useful. sqfs_read_metablock()
is an internal function, so it should be up to the callers to make sure
that they don't pass a NULL file_mapping argument.

Thomas
Heinrich Schuchardt Sept. 23, 2020, 8:36 p.m. UTC | #2
On 9/23/20 9:49 PM, Thomas Petazzoni wrote:
> On Wed, 23 Sep 2020 21:13:51 +0200
> Heinrich Schuchardt <xypron.glpk@gmx.de> wrote:
>
>> We should check if the incoming parameter file_mapping is not NULL instead
>> of checking after adding an offset.
>>
>> Reported-by: Coverity CID 307210
>> Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
>
> Acked-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
>
> However, I wonder if this check is really useful. sqfs_read_metablock()
> is an internal function, so it should be up to the callers to make sure
> that they don't pass a NULL file_mapping argument.
>
> Thomas
>

This is a question of programming style. Eliminating the check may be
justified if the input variable is checked by every caller.

The real problems are elsewhere, e.g.

sqfs_search_dir() and sqfs_readdir() do not check the return value of
sqfs_find_inode() which may be NULL.

sqfs_opendir() leaks allocated memory if an error occurs.

Best regards

Heinrich
Tom Rini Sept. 30, 2020, 12:50 p.m. UTC | #3
On Wed, Sep 23, 2020 at 09:13:51PM +0200, Heinrich Schuchardt wrote:

> We should check if the incoming parameter file_mapping is not NULL instead
> of checking after adding an offset.
> 
> Reported-by: Coverity CID 307210
> Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
> Acked-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>

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

Patch

diff --git a/fs/squashfs/sqfs_inode.c b/fs/squashfs/sqfs_inode.c
index 1368f3063c..14d70cf678 100644
--- a/fs/squashfs/sqfs_inode.c
+++ b/fs/squashfs/sqfs_inode.c
@@ -141,9 +141,9 @@  int sqfs_read_metablock(unsigned char *file_mapping, int offset,
 	const unsigned char *data;
 	u16 header;

-	data = file_mapping + offset;
-	if (!data)
+	if (!file_mapping)
 		return -EFAULT;
+	data = file_mapping + offset;

 	header = get_unaligned((u16 *)data);
 	if (!header)