]> git.ipfire.org Git - thirdparty/xfsprogs-dev.git/commitdiff
xfs_db: improve error message when unknown btree type given to btheight
authorDarrick J. Wong <djwong@kernel.org>
Thu, 16 Jan 2025 21:22:04 +0000 (13:22 -0800)
committerDarrick J. Wong <djwong@kernel.org>
Thu, 16 Jan 2025 21:27:27 +0000 (13:27 -0800)
I found accidentally that if you do this (note 'rmap', not 'rmapbt'):

xfs_db /dev/sda -c 'btheight -n 100 rmap'

The program spits back "Numerical result out of range".  That's the
result of it failing to match "rmap" against a known btree type, and
falling back to parsing the string as if it were a btree geometry
description.

Improve this a little by checking that there's at least one semicolon in
the string so that the error message improves to:

"rmap: expected a btree geometry specification"

Fixes: cb1e69c564c1e0 ("xfs_db: add a function to compute btree geometry")
Signed-off-by: "Darrick J. Wong" <djwong@kernel.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
db/btheight.c

index 6643489c82c4c9e264e94f6ccfbe8ab7a4ae61a0..98165b522e4f6f9c6dc58f1faed4dd0fc9340d7e 100644 (file)
@@ -145,6 +145,12 @@ construct_records_per_block(
                }
        }
 
+       p = strchr(tag, ':');
+       if (!p) {
+               fprintf(stderr, _("%s: expected a btree geometry specification.\n"), tag);
+               return -1;
+       }
+
        toktag = strdup(tag);
        ret = -1;