It's a bit strange to accept revision levels higher than
the code creating the filesystem can understand, so don't
allow it.
At least the kernel will mount the fs readonly if it's too
high, but no other utility will touch it, so you can't
fix the error.
Just reject anything > EXT2_MAX_SUPP_REV at mkfs time.
Signed-off-by: Eric Sandeen <[email protected]>
---
diff --git a/misc/mke2fs.c b/misc/mke2fs.c
index aecd5d5..82019dc 100644
--- a/misc/mke2fs.c
+++ b/misc/mke2fs.c
@@ -1679,9 +1679,10 @@ profile_error:
break;
case 'r':
r_opt = strtoul(optarg, &tmp, 0);
- if (*tmp) {
+ if (*tmp || (r_opt > EXT2_MAX_SUPP_REV)) {
com_err(program_name, 0,
- _("bad revision level - %s"), optarg);
+ _("bad revision level - %s (max %d)"),
+ optarg, EXT2_MAX_SUPP_REV);
exit(1);
}
fs_param.s_rev_level = r_opt;
From: Frank Sorenson <[email protected]>
Don't create a filesystem with an unsupported revision number
Signed-off-by: Frank Sorenson <[email protected]>
Signed-off-by: Eric Sandeen <[email protected]>
---
V2: Frank did this independently, and it's better. I forgot about
using com_err here.
--- a/misc/mke2fs.c
+++ a/misc/mke2fs.c
@@ -1684,6 +1684,11 @@ profile_error:
_("bad revision level - %s"), optarg);
exit(1);
}
+ if (r_opt > EXT2_MAX_SUPP_REV) {
+ com_err(program_name, EXT2_ET_REV_TOO_HIGH,
+ _("while trying to create revision %d"), r_opt);
+ exit(1);
+ }
fs_param.s_rev_level = r_opt;
break;
case 's': /* deprecated */
On May 1, 2014, at 2:39 PM, Eric Sandeen <[email protected]> wrote:
> From: Frank Sorenson <[email protected]>
>
> Don't create a filesystem with an unsupported revision number
I like the commit comment on the original patch better...
Cheers, Andreas
> Signed-off-by: Frank Sorenson <[email protected]>
> Signed-off-by: Eric Sandeen <[email protected]>
> ---
>
> V2: Frank did this independently, and it's better. I forgot about
> using com_err here.
>
> --- a/misc/mke2fs.c
> +++ a/misc/mke2fs.c
> @@ -1684,6 +1684,11 @@ profile_error:
> _("bad revision level - %s"), optarg);
> exit(1);
> }
> + if (r_opt > EXT2_MAX_SUPP_REV) {
> + com_err(program_name, EXT2_ET_REV_TOO_HIGH,
> + _("while trying to create revision %d"), r_opt);
> + exit(1);
> + }
> fs_param.s_rev_level = r_opt;
> break;
> case 's': /* deprecated */
> --
> To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
Cheers, Andreas
From: Frank Sorenson <[email protected]>
It's a bit strange to accept revision levels higher than
the code creating the filesystem can understand, so don't
allow it.
At least the kernel will mount the fs readonly if it's too
high, but no other utility will touch it, so you can't
fix the error.
Just reject anything > EXT2_MAX_SUPP_REV at mkfs time.
Signed-off-by: Frank Sorenson <[email protected]>
[[email protected]: Add more verbose commit log]
Signed-off-by: Eric Sandeen <[email protected]>
---
V2: Frank did this independently, and it's better. I forgot about
using com_err here.
V3: go back to V1's commit log for Andreas :)
--- a/misc/mke2fs.c
+++ a/misc/mke2fs.c
@@ -1684,6 +1684,11 @@ profile_error:
_("bad revision level - %s"), optarg);
exit(1);
}
+ if (r_opt > EXT2_MAX_SUPP_REV) {
+ com_err(program_name, EXT2_ET_REV_TOO_HIGH,
+ _("while trying to create revision %d"), r_opt);
+ exit(1);
+ }
fs_param.s_rev_level = r_opt;
break;
case 's': /* deprecated */
On Thu, May 01, 2014 at 05:35:00PM -0500, Eric Sandeen wrote:
> From: Frank Sorenson <[email protected]>
>
> It's a bit strange to accept revision levels higher than
> the code creating the filesystem can understand, so don't
> allow it.
>
> At least the kernel will mount the fs readonly if it's too
> high, but no other utility will touch it, so you can't
> fix the error.
>
> Just reject anything > EXT2_MAX_SUPP_REV at mkfs time.
>
> Signed-off-by: Frank Sorenson <[email protected]>
> [[email protected]: Add more verbose commit log]
> Signed-off-by: Eric Sandeen <[email protected]>
Thanks, applied.
- Ted
Came across this, still not merged, so ping?
On 5/1/14 2:55 PM, Eric Sandeen wrote:
> It's a bit strange to accept revision levels higher than
> the code creating the filesystem can understand, so don't
> allow it.
>
> At least the kernel will mount the fs readonly if it's too
> high, but no other utility will touch it, so you can't
> fix the error.
>
> Just reject anything > EXT2_MAX_SUPP_REV at mkfs time.
>
> Signed-off-by: Eric Sandeen <[email protected]>
> ---
>
> diff --git a/misc/mke2fs.c b/misc/mke2fs.c
> index aecd5d5..82019dc 100644
> --- a/misc/mke2fs.c
> +++ b/misc/mke2fs.c
> @@ -1679,9 +1679,10 @@ profile_error:
> break;
> case 'r':
> r_opt = strtoul(optarg, &tmp, 0);
> - if (*tmp) {
> + if (*tmp || (r_opt > EXT2_MAX_SUPP_REV)) {
> com_err(program_name, 0,
> - _("bad revision level - %s"), optarg);
> + _("bad revision level - %s (max %d)"),
> + optarg, EXT2_MAX_SUPP_REV);
> exit(1);
> }
> fs_param.s_rev_level = r_opt;
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
> On Jan 14, 2016, at 11:35 AM, Eric Sandeen <[email protected]> wrote:
>
> Came across this, still not merged, so ping?
>
> On 5/1/14 2:55 PM, Eric Sandeen wrote:
>> It's a bit strange to accept revision levels higher than
>> the code creating the filesystem can understand, so don't
>> allow it.
>>
>> At least the kernel will mount the fs readonly if it's too
>> high, but no other utility will touch it, so you can't
>> fix the error.
>>
>> Just reject anything > EXT2_MAX_SUPP_REV at mkfs time.
>>
>> Signed-off-by: Eric Sandeen <[email protected]>
Reviewed-by: Andreas Dilger <[email protected]>
>> ---
>>
>> diff --git a/misc/mke2fs.c b/misc/mke2fs.c
>> index aecd5d5..82019dc 100644
>> --- a/misc/mke2fs.c
>> +++ b/misc/mke2fs.c
>> @@ -1679,9 +1679,10 @@ profile_error:
>> break;
>> case 'r':
>> r_opt = strtoul(optarg, &tmp, 0);
>> - if (*tmp) {
>> + if (*tmp || (r_opt > EXT2_MAX_SUPP_REV)) {
>> com_err(program_name, 0,
>> - _("bad revision level - %s"), optarg);
>> + _("bad revision level - %s (max %d)"),
>> + optarg, EXT2_MAX_SUPP_REV);
>> exit(1);
>> }
>> fs_param.s_rev_level = r_opt;
>>
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
>> the body of a message to [email protected]
>> More majordomo info at http://vger.kernel.org/majordomo-info.html
>>
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
Cheers, Andreas