* [PATCH] xfs_db: fix broken logic in error path @ 2023-04-27 19:02 ` Darrick J. Wong 2023-04-28 6:57 ` Carlos Maiolino 0 siblings, 1 reply; 2+ messages in thread From: Darrick J. Wong @ 2023-04-27 19:02 UTC (permalink / raw) To: Carlos Maiolino; +Cc: xfs From: Darrick J. Wong <djwong@kernel.org> smatch complains proceeding into the if body if leaf is a null pointer: check.c:3614 process_leaf_node_dir_v2_int() warn: variable dereferenced before check 'leaf' (see line 3518) However, the logic here is misleading and broken -- what we're trying to do is switch between the v4 and v5 variants of the directory check. We're using @leaf3 being a null pointer (or not) to determine v4 vs. v5, so the "!" part of the comparison is correct, but the variable used (leaf) is not. Signed-off-by: Darrick J. Wong <djwong@kernel.org> --- db/check.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/db/check.c b/db/check.c index 964756d0..fdf1f6a1 100644 --- a/db/check.c +++ b/db/check.c @@ -3452,7 +3452,7 @@ process_leaf_node_dir_v2_int( id->ino, dabno, stale, be16_to_cpu(leaf3->hdr.stale)); error++; - } else if (!leaf && stale != be16_to_cpu(leaf->hdr.stale)) { + } else if (!leaf3 && stale != be16_to_cpu(leaf->hdr.stale)) { if (!sflag || v) dbprintf(_("dir %lld block %d stale mismatch " "%d/%d\n"), ^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH] xfs_db: fix broken logic in error path 2023-04-27 19:02 ` [PATCH] xfs_db: fix broken logic in error path Darrick J. Wong @ 2023-04-28 6:57 ` Carlos Maiolino 0 siblings, 0 replies; 2+ messages in thread From: Carlos Maiolino @ 2023-04-28 6:57 UTC (permalink / raw) To: Darrick J. Wong; +Cc: xfs On Thu, Apr 27, 2023 at 12:02:33PM -0700, Darrick J. Wong wrote: > From: Darrick J. Wong <djwong@kernel.org> > > smatch complains proceeding into the if body if leaf is a null pointer: > > check.c:3614 process_leaf_node_dir_v2_int() warn: variable dereferenced before check 'leaf' (see line 3518) > > However, the logic here is misleading and broken -- what we're trying to > do is switch between the v4 and v5 variants of the directory check. > We're using @leaf3 being a null pointer (or not) to determine v4 vs. v5, > so the "!" part of the comparison is correct, but the variable used > (leaf) is not. > > Signed-off-by: Darrick J. Wong <djwong@kernel.org> Looks correct. Reviewed-by: Carlos Maiolino <cmaiolino@redhat.com> > --- > db/check.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/db/check.c b/db/check.c > index 964756d0..fdf1f6a1 100644 > --- a/db/check.c > +++ b/db/check.c > @@ -3452,7 +3452,7 @@ process_leaf_node_dir_v2_int( > id->ino, dabno, stale, > be16_to_cpu(leaf3->hdr.stale)); > error++; > - } else if (!leaf && stale != be16_to_cpu(leaf->hdr.stale)) { > + } else if (!leaf3 && stale != be16_to_cpu(leaf->hdr.stale)) { > if (!sflag || v) > dbprintf(_("dir %lld block %d stale mismatch " > "%d/%d\n"), -- Carlos Maiolino ^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2023-04-28 6:57 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <dVNtpBd6-O_AvMmCUgAc-vlNbr0x-1IgIQEPpoWYEipz8Jor5TfX6Z4vsKsLU3R38WCua0jJqVmmgSL_Rp62lA==@protonmail.internalid>
2023-04-27 19:02 ` [PATCH] xfs_db: fix broken logic in error path Darrick J. Wong
2023-04-28 6:57 ` Carlos Maiolino
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).