Begin forwarded message: Date: Thu, 1 Dec 2005 08:54:18 -0800 From: "Jayachandran C." <jchandra@xxxxxxxxx> To: ext3-users@xxxxxxxxxx Cc: akpm@xxxxxxxx Subject: Errors reported by Coverity in ext3. [Re-sending to the ext3 list, with minor edits] I'm in the process of fixing errors generated by the Coverity tool on the Linux kernel, and I would like your comment on a set of problems reported in ext3. The main issue reported is not checking the return code of ext3_journal_get_write_access() in various places. I would like to know if there should be error handling in these cases. The places where the return value is not checked are(in the current kernel version): fs/ext3/inode.c ext3_clear_blocks 1829 fs/ext3/namei.c ext3_append 63 fs/ext3/namei.c ext3_delete_entry 1585 fs/ext3/namei.c ext3_mkdir 1745 fs/ext3/namei.c ext3_rename 2273 fs/ext3/namei.c ext3_rename 2328 I have attached the full text of errors reported by Coverity on kernel version 2.6.13, for reference. --- 1. Error reported in ext3/namei.c --- CID: 3549 Checker: CHECKED_RETURN File: fs/ext3/namei.c Function: ext3_rename Description: Return value of "__ext3_journal_get_write_access" is not checked 2260 } else { 2261 BUFFER_TRACE(new_bh, "get write access"); Event check_return: Called function "__ext3_journal_get_write_access" whose return value should be checked (checked 32 out of 39 times) Event unchecked_value: Return value of "__ext3_journal_get_write_access" is not checked Also see events: 2262 ext3_journal_get_write_access(handle, new_bh); --- 2. Error reported in ext3/inode.c --- CID: 3548 Checker: CHECKED_RETURN File: fs/ext3/inode.c Function: ext3_clear_blocks Description: Return value of "__ext3_journal_get_write_access" is not checked 1816 if (bh) { 1817 BUFFER_TRACE(bh, "retaking write access"); Event check_return: Called function "__ext3_journal_get_write_access" whose return value should be checked (checked 32 out of 39 times) Event unchecked_value: Return value of "__ext3_journal_get_write_access" is not checked Also see events: 1818 ext3_journal_get_write_access(handle, bh); 1819 } --- 3. Error reported in ext3/namei.c --- CID: 3547 Checker: CHECKED_RETURN File: fs/ext3/namei.c Function: ext3_delete_entry Description: Return value of "__ext3_journal_get_write_access" is not checked 1573 if (de == de_del) { 1574 BUFFER_TRACE(bh, "get_write_access"); Event check_return: Called function "__ext3_journal_get_write_access" whose return value should be checked (checked 32 out of 39 times) Event unchecked_value: Return value of "__ext3_journal_get_write_access" is not checked Also see events: 1575 ext3_journal_get_write_access(handle, bh); 1576 if (pde) 4. Error reported in ext3/namei.c --- CID: 3546 Checker: CHECKED_RETURN File: fs/ext3/namei.c Function: ext3_append Description: Return value of "__ext3_journal_get_write_access" is not checked 58 if ((bh = ext3_bread(handle, inode, *block, 1, err))) { 59 inode->i_size += inode->i_sb->s_blocksize; 60 EXT3_I(inode)->i_disksize = inode->i_size; Event check_return: Called function "__ext3_journal_get_write_access" whose return value should be checked (checked 32 out of 39 times) Event unchecked_value: Return value of "__ext3_journal_get_write_access" is not checked Also see events: 61 ext3_journal_get_write_access(handle,bh); 62 } 63 return bh; --- 5. Error reported in ext3/balloc.c --- CID: 3545 Checker: CHECKED_RETURN File: fs/ext3/balloc.c Function: ext3_free_blocks_sb Description: Return value of "test_and_set_bit" is not checked 439 BUFFER_TRACE(bitmap_bh, "set in b_committed_data"); 440 J_ASSERT_BH(bitmap_bh, 441 bh2jh(bitmap_bh)->b_committed_data != NULL); Event check_return: Called function "test_and_set_bit" whose return value should be checked (checked 83 out of 95 times) Event unchecked_value: Return value of "test_and_set_bit" is not checked 442 ext3_set_bit_atomic(sb_bgl_lock(sbi, block_group), bit + i, 443 bh2jh(bitmap_bh)->b_committed_data); -- Thanks, - C. Jayachandran c.jayachandran@xxxxxxxxx - To unsubscribe from this list: send the line "unsubscribe linux-ext4" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html