From: Darrick J. Wong Date: Thu, 12 Dec 2013 18:08:45 +0000 (-0500) Subject: e4defrag: defensively check results of sysconf(_SC_PAGESIZE) X-Git-Tag: v1.42.9~74 X-Git-Url: https://git.whamcloud.com/gitweb?a=commitdiff_plain;h=b1667425f8cd8b3c3d6b205ac9f3dee2e085058c;p=tools%2Fe2fsprogs.git e4defrag: defensively check results of sysconf(_SC_PAGESIZE) sysconf(_SC_PAGESIZE) will probably never return an error, but just in case it does, we shouldn't pass what looks like a huge number to sync_file_range() and posix_fadvise(). Signed-off-by: Darrick J. Wong Signed-off-by: "Theodore Ts'o" --- diff --git a/misc/e4defrag.c b/misc/e4defrag.c index b6e2e31..07d56d9 100644 --- a/misc/e4defrag.c +++ b/misc/e4defrag.c @@ -473,6 +473,9 @@ static int defrag_fadvise(int fd, struct move_extent defrag_data, unsigned int i; loff_t offset; + if (pagesize < 1) + return -1; + offset = (loff_t)defrag_data.orig_start * block_size; offset = (offset / pagesize) * pagesize;