Skip to contentSkip to conversation

Coverity: jbd_unlock_bh_journal_head(): Memory - corruptions

DISCUSSION coverity-bot 2 participants 3 messages Nov 12, 2019 Linux-next tree

lore
Share & tools
lore
#0 lore raw

Hello!

This is an experimental automated report about issues detected by Coverity from a scan of next-20191108 as part of the linux-next weekly scan project:
https://scan.coverity.com/projects/linux-next-weekly-scan

You're getting this email because you were associated with the identified lines of code (noted below) that were touched by recent commits:

c290ea01abb7 ("fs: Remove ext3 filesystem driver")

Coverity reported the following:

*** CID 1487847: Memory - corruptions (ARRAY_VS_SINGLETON) /include/linux/jbd2.h: 351 in jbd_unlock_bh_journal_head()

345     {
346     	bit_spin_lock(BH_JournalHead, &bh->b_state);
347     }
348
349     static inline void jbd_unlock_bh_journal_head(struct buffer_head *bh)
350     {
vvv     CID 1487847:  Memory - corruptions  (ARRAY_VS_SINGLETON)
vvv     Passing "&bh->b_state" to function "bit_spin_unlock" which uses it as an array. This might corrupt or misinterpret adjacent memory locations.
351     	bit_spin_unlock(BH_JournalHead, &bh->b_state);
352     }

353
354 #define J_ASSERT(assert) BUG_ON(!(assert))
355
356 #define J_ASSERT_BH(bh, expr) J_ASSERT(expr)

If this is a false positive, please let us know so we can mark it as such, or teach the Coverity rules to be smarter. If not, please make sure fixes get into linux-next. :) For patches fixing this, please include these lines (but double-check the "Fixes" first):

Addresses-Coverity-ID: 1487847 ("Memory - corruptions")

Fixes c290ea01abb7 ("fs: Remove ext3 filesystem driver")

Thanks for your attention!

Signature · 1 line
Coverity-bot
#1 lore raw

Hello,

Quoted 13 lines · coverity-bot

This is an experimental automated report about issues detected by Coverity from a scan of next-20191108 as part of the linux-next weekly scan project:
https://scan.coverity.com/projects/linux-next-weekly-scan

You're getting this email because you were associated with the identified lines of code (noted below) that were touched by recent commits:

c290ea01abb7 ("fs: Remove ext3 filesystem driver")

Coverity reported the following:

*** CID 1487847: Memory - corruptions (ARRAY_VS_SINGLETON) /include/linux/jbd2.h: 351 in jbd_unlock_bh_journal_head()

Quoted 10 lines
345     {
346     	bit_spin_lock(BH_JournalHead, &bh->b_state);
347     }
348
349     static inline void jbd_unlock_bh_journal_head(struct buffer_head *bh)
350     {
vvv     CID 1487847:  Memory - corruptions  (ARRAY_VS_SINGLETON)
vvv     Passing "&bh->b_state" to function "bit_spin_unlock" which uses it as an array. This might corrupt or misinterpret adjacent memory locations.
351     	bit_spin_unlock(BH_JournalHead, &bh->b_state);
352     }

This is obviously false positive. I guess coverity needs to learn about bit-spinlocks so that it doesn't generate false positive report about each usage?

Honza

Quoted 19 lines

353
354 #define J_ASSERT(assert) BUG_ON(!(assert))
355
356 #define J_ASSERT_BH(bh, expr) J_ASSERT(expr)

If this is a false positive, please let us know so we can mark it as such, or teach the Coverity rules to be smarter. If not, please make sure fixes get into linux-next. :) For patches fixing this, please include these lines (but double-check the "Fixes" first):

Addresses-Coverity-ID: 1487847 ("Memory - corruptions")

Fixes c290ea01abb7 ("fs: Remove ext3 filesystem driver")

Thanks for your attention!

Signature · 1 line
Coverity-bot
Signature · 2 lines
Jan Kara <[email protected]>
SUSE Labs, CR
author
#2 lore raw
Quoted 27 lines · Jan Kara

Hello,

Quoted 13 lines · coverity-bot

This is an experimental automated report about issues detected by Coverity from a scan of next-20191108 as part of the linux-next weekly scan project:
https://scan.coverity.com/projects/linux-next-weekly-scan

You're getting this email because you were associated with the identified lines of code (noted below) that were touched by recent commits:

c290ea01abb7 ("fs: Remove ext3 filesystem driver")

Coverity reported the following:

*** CID 1487847: Memory - corruptions (ARRAY_VS_SINGLETON) /include/linux/jbd2.h: 351 in jbd_unlock_bh_journal_head()

Quoted 10 lines
345     {
346     	bit_spin_lock(BH_JournalHead, &bh->b_state);
347     }
348
349     static inline void jbd_unlock_bh_journal_head(struct buffer_head *bh)
350     {
vvv     CID 1487847:  Memory - corruptions  (ARRAY_VS_SINGLETON)
vvv     Passing "&bh->b_state" to function "bit_spin_unlock" which uses it as an array. This might corrupt or misinterpret adjacent memory locations.
351     	bit_spin_unlock(BH_JournalHead, &bh->b_state);
352     }
Quoted 3 lines

This is obviously false positive. I guess coverity needs to learn about bit-spinlocks so that it doesn't generate false positive report about each usage?

Yeah, that's a pretty weird glitch on Coverity's part. I've taken a note on this subset of warnings. Thanks for looking at it!

Signature · 1 line
Kees Cook