On Mon, Jul 24, 2023 at 10:19:02AM -0700, Nick Desaulniers wrote: > > > > err is uninitialized and will be judged when it enters the > > loop first time and the condition "!ext4_sb_block_valid()" > > is true. Although this can't make problems now, it's better > > to correct it. > > > > Signed-off-by: Su Hui <suhui@xxxxxxxxxxxx> > > Hi Su, > Thanks for the patch! I see what the warning is getting at; > > If `len <= 0` then `err` is never initialized, then is used at line > 4178 (that is UB). > > Would you mind sending a v2 with the commit message updated to reflect > the above points? I'd be happy to sign-off on that. Fortunately, as near as I can tell, ext4_mb_mark_bb() should never be called with len <= 0. It might be possible to trick ext4 via a corrupted file system --- I'd have to take a closer look at that, but fortunately, in the case where len <= 0, bitmap_bh will be NULL, so regardless of whether err is 0, or some garbage non-zero value, brelse(NULL) is a no-op. So while it's good to avoid the clang warning, but the fact that it might be possible for err to be a "garbage value" shouldn't be causing any problem. Cheers, - Ted