* [PATCH] e2fsprogs : Add stricter checks for blocksize in ext2fs_open
@ 2008-07-11 8:49 Manish Katiyar
2008-07-11 12:43 ` Peter Staubach
2008-07-11 12:55 ` Theodore Tso
0 siblings, 2 replies; 4+ messages in thread
From: Manish Katiyar @ 2008-07-11 8:49 UTC (permalink / raw)
To: linux-ext4, Theodore Tso; +Cc: mkatiyar
Below patch adds stricter checks in ext2fs_open() so that we catch bad
block sizes earlier than later.
============================================================================
Signed-off-by: "Manish Katiyar" <mkatiyar@gmail.com>
---
lib/ext2fs/openfs.c | 4 +++-
1 files changed, 3 insertions(+), 1 deletions(-)
diff --git a/lib/ext2fs/openfs.c b/lib/ext2fs/openfs.c
index fc54afe..670cc7c 100644
--- a/lib/ext2fs/openfs.c
+++ b/lib/ext2fs/openfs.c
@@ -233,7 +233,9 @@ errcode_t ext2fs_open2(const char *name, const
char *io_options,
}
fs->blocksize = EXT2_BLOCK_SIZE(fs->super);
- if (fs->blocksize == 0) {
+ if ((fs->blocksize < EXT2_MIN_BLOCK_SIZE) ||
+ (fs->blocksize > EXT2_MAX_BLOCK_SIZE) ||
+ (fs->blocksize % EXT2_MIN_BLOCK_SIZE != 0)) {
retval = EXT2_ET_CORRUPT_SUPERBLOCK;
goto cleanup;
}
--
1.5.4.3
============================================================================
--
Thanks & Regards,
********************************************
Manish Katiyar ( http://mkatiyar.googlepages.com )
3rd Floor, Fair Winds Block
EGL Software Park
Off Intermediate Ring Road
Bangalore 560071, India
***********************************************
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH] e2fsprogs : Add stricter checks for blocksize in ext2fs_open
2008-07-11 8:49 [PATCH] e2fsprogs : Add stricter checks for blocksize in ext2fs_open Manish Katiyar
@ 2008-07-11 12:43 ` Peter Staubach
2008-07-11 12:55 ` Theodore Tso
1 sibling, 0 replies; 4+ messages in thread
From: Peter Staubach @ 2008-07-11 12:43 UTC (permalink / raw)
To: Manish Katiyar; +Cc: linux-ext4, Theodore Tso
Manish Katiyar wrote:
> Below patch adds stricter checks in ext2fs_open() so that we catch bad
> block sizes earlier than later.
>
> ============================================================================
>
> Signed-off-by: "Manish Katiyar" <mkatiyar@gmail.com>
>
> ---
> lib/ext2fs/openfs.c | 4 +++-
> 1 files changed, 3 insertions(+), 1 deletions(-)
>
> diff --git a/lib/ext2fs/openfs.c b/lib/ext2fs/openfs.c
> index fc54afe..670cc7c 100644
> --- a/lib/ext2fs/openfs.c
> +++ b/lib/ext2fs/openfs.c
> @@ -233,7 +233,9 @@ errcode_t ext2fs_open2(const char *name, const
> char *io_options,
> }
>
> fs->blocksize = EXT2_BLOCK_SIZE(fs->super);
> - if (fs->blocksize == 0) {
> + if ((fs->blocksize < EXT2_MIN_BLOCK_SIZE) ||
> + (fs->blocksize > EXT2_MAX_BLOCK_SIZE) ||
> + (fs->blocksize % EXT2_MIN_BLOCK_SIZE != 0)) {
>
It seems to me that this would read more clearly as:
((fs->blocksize % EXT2_MIN_BLOCK_SIZE) != 0)) {
Thanx!
ps
> retval = EXT2_ET_CORRUPT_SUPERBLOCK;
> goto cleanup;
> }
>
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] e2fsprogs : Add stricter checks for blocksize in ext2fs_open
2008-07-11 8:49 [PATCH] e2fsprogs : Add stricter checks for blocksize in ext2fs_open Manish Katiyar
2008-07-11 12:43 ` Peter Staubach
@ 2008-07-11 12:55 ` Theodore Tso
2008-07-11 21:46 ` Theodore Tso
1 sibling, 1 reply; 4+ messages in thread
From: Theodore Tso @ 2008-07-11 12:55 UTC (permalink / raw)
To: Manish Katiyar; +Cc: linux-ext4
On Fri, Jul 11, 2008 at 02:19:06PM +0530, Manish Katiyar wrote:
> Below patch adds stricter checks in ext2fs_open() so that we catch bad
> block sizes earlier than later.
That concept seems fine; I'm curious why you found this necessary?
Did you have a corrupted filesystem where this caused major problems?
If so, can I have more details?
> fs->blocksize = EXT2_BLOCK_SIZE(fs->super);
> - if (fs->blocksize == 0) {
> + if ((fs->blocksize < EXT2_MIN_BLOCK_SIZE) ||
> + (fs->blocksize > EXT2_MAX_BLOCK_SIZE) ||
> + (fs->blocksize % EXT2_MIN_BLOCK_SIZE != 0)) {
The first and last check is not necessary, given that EXT2_bLOCK_SIZE
is defined as:
#define EXT2_BLOCK_SIZE(s) (EXT2_MIN_BLOCK_SIZE << (s)->s_log_block_size)
So by definition, the blocksize will *always* be greater than or equal
to MIN_BLOCK_SIZE, and it always will be a multiple of EXT2_MIN_BLOCK_SIZE.
The more direct check which we could do would be something like this:
if ((fs->super->s_log_block_size < EXT2_MIN_BLOCK_LOG_SIZE) ||
(fs->super->s_log_block_size > EXT2_MAX_BLOCK_LOG_SIZE))
retval = EXT2_ET_CORRUPT_SUPERBLOCK;
goto cleanup;
}
... before setting fs->blocksize.
I'm curious what problem you were worried about that might happen if
fs->blocksize were greater than 64k, though.
- Ted
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] e2fsprogs : Add stricter checks for blocksize in ext2fs_open
2008-07-11 12:55 ` Theodore Tso
@ 2008-07-11 21:46 ` Theodore Tso
0 siblings, 0 replies; 4+ messages in thread
From: Theodore Tso @ 2008-07-11 21:46 UTC (permalink / raw)
To: Manish Katiyar; +Cc: linux-ext4
This is what I ended up checking into my tree:
From: Manish Katiyar <mkatiyar@gmail.com>
Date: Fri, 11 Jul 2008 17:45:07 -0400
Subject: [PATCH] libext2fs: Add stricter/earlier tests for blocksize in ext2fs_open()
Signed-off-by: "Manish Katiyar" <mkatiyar@gmail.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
---
lib/ext2fs/openfs.c | 5 +++--
1 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/lib/ext2fs/openfs.c b/lib/ext2fs/openfs.c
index fc54afe..525693e 100644
--- a/lib/ext2fs/openfs.c
+++ b/lib/ext2fs/openfs.c
@@ -232,11 +232,12 @@ errcode_t ext2fs_open2(const char *name, const char *io_options,
}
}
- fs->blocksize = EXT2_BLOCK_SIZE(fs->super);
- if (fs->blocksize == 0) {
+ if ((fs->super->s_log_block_size + EXT2_MIN_BLOCK_LOG_SIZE) >
+ EXT2_MAX_BLOCK_LOG_SIZE) {
retval = EXT2_ET_CORRUPT_SUPERBLOCK;
goto cleanup;
}
+ fs->blocksize = EXT2_BLOCK_SIZE(fs->super);
if (EXT2_INODE_SIZE(fs->super) < EXT2_GOOD_OLD_INODE_SIZE) {
retval = EXT2_ET_CORRUPT_SUPERBLOCK;
goto cleanup;
--
1.5.6.1.205.ge2c7.dirty
^ permalink raw reply related [flat|nested] 4+ messages in thread
end of thread, other threads:[~2008-07-11 21:47 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-07-11 8:49 [PATCH] e2fsprogs : Add stricter checks for blocksize in ext2fs_open Manish Katiyar
2008-07-11 12:43 ` Peter Staubach
2008-07-11 12:55 ` Theodore Tso
2008-07-11 21:46 ` Theodore Tso
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox