Messages in this thread Patch in this message | | | From | Andrey Strachuk <> | Subject | [PATCH] efs: removed useless conditional checks in function | Date | Thu, 7 Jul 2022 17:26:52 +0300 |
| |
At lines 300 and 305, variable "bh" is compared with NULL.
----------------------------------------------------------- 293 exts = (efs_extent *) bh->b_data; 294 295 extent_copy(&(exts[ioffset]), &ext); 296 297 if (ext.cooked.ex_magic != 0) { 298 pr_err("extent %d has bad magic number in block %d\n", 299 cur, iblock); 300 if (bh) brelse(bh); 301 return 0; 302 } 303 304 if ((result = efs_extent_check(&ext, block, sb))) { 305 if (bh) brelse(bh); 306 in->lastextent = cur; 307 return result; 308 } -----------------------------------------------------------
However, it cannot be NULL because kernel crashes at line 293 otherwise. The patch removes useless comparisons.
Found by Linux Verification Center (linuxtesting.org) with SVACE.
Signed-off-by: Andrey Strachuk <strochuk@ispras.ru> Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2") --- fs/efs/inode.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/fs/efs/inode.c b/fs/efs/inode.c index 3ba94bb005a6..a88a0600cdfb 100644 --- a/fs/efs/inode.c +++ b/fs/efs/inode.c @@ -297,12 +297,12 @@ efs_block_t efs_map_block(struct inode *inode, efs_block_t block) { if (ext.cooked.ex_magic != 0) { pr_err("extent %d has bad magic number in block %d\n", cur, iblock); - if (bh) brelse(bh); + brelse(bh); return 0; } if ((result = efs_extent_check(&ext, block, sb))) { - if (bh) brelse(bh); + brelse(bh); in->lastextent = cur; return result; } -- 2.25.1
| |