On Wed, Apr 17, 2024 at 02:52:28PM +0200, Andrey Albershteyn wrote: > Convert howlong argument to a time_t as it's truncated to int, but in > practice this is not an issue as duration will never be this big. > > Add check for howlong to fit into int (printf can use int format > specifier). Even longer interval doesn't make much sense. > > Signed-off-by: Andrey Albershteyn <aalbersh@xxxxxxxxxx> Looks good, Reviewed-by: Darrick J. Wong <djwong@xxxxxxxxxx> --D > --- > fsr/xfs_fsr.c | 10 ++++++++-- > 1 file changed, 8 insertions(+), 2 deletions(-) > > diff --git a/fsr/xfs_fsr.c b/fsr/xfs_fsr.c > index 3077d8f4ef46..02d61ef9399a 100644 > --- a/fsr/xfs_fsr.c > +++ b/fsr/xfs_fsr.c > @@ -72,7 +72,7 @@ static int packfile(char *fname, char *tname, int fd, > static void fsrdir(char *dirname); > static int fsrfs(char *mntdir, xfs_ino_t ino, int targetrange); > static void initallfs(char *mtab); > -static void fsrallfs(char *mtab, int howlong, char *leftofffile); > +static void fsrallfs(char *mtab, time_t howlong, char *leftofffile); > static void fsrall_cleanup(int timeout); > static int getnextents(int); > int xfsrtextsize(int fd); > @@ -165,6 +165,12 @@ main(int argc, char **argv) > break; > case 't': > howlong = atoi(optarg); > + if (howlong > INT_MAX) { > + fprintf(stderr, > + _("%s: the maximum runtime is %d seconds.\n"), > + optarg, INT_MAX); > + exit(1); > + } > break; > case 'f': > leftofffile = optarg; > @@ -387,7 +393,7 @@ initallfs(char *mtab) > } > > static void > -fsrallfs(char *mtab, int howlong, char *leftofffile) > +fsrallfs(char *mtab, time_t howlong, char *leftofffile) > { > int fd; > int error; > -- > 2.42.0 > >