All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/4] befs: check allocation_group number before use
@ 2016-08-10 22:12 Salah Triki
  2016-08-10 22:12 ` [PATCH 2/4] befs: check return value of iaddr2blockno Salah Triki
                   ` (3 more replies)
  0 siblings, 4 replies; 9+ messages in thread
From: Salah Triki @ 2016-08-10 22:12 UTC (permalink / raw)
  To: akpm, viro, luisbg; +Cc: linux-kernel, salah.triki

Check that the allocation group number is not greater or equal to the
number of allocations group in the file system and return BEF_ERR in the
case of error.

Signed-off-by: Salah Triki <salah.triki@gmail.com>
---
 fs/befs/befs.h | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/fs/befs/befs.h b/fs/befs/befs.h
index 55f3ea2..6daf4c4 100644
--- a/fs/befs/befs.h
+++ b/fs/befs/befs.h
@@ -121,6 +121,11 @@ BEFS_I(const struct inode *inode)
 static inline befs_blocknr_t
 iaddr2blockno(struct super_block *sb, const befs_inode_addr *iaddr)
 {
+	if (iaddr->allocation_group >= BEFS_SB(sb)->num_ags) {
+		befs_error(sb, "BEFS: Invalid allocation group %u, max is %u",
+			   iaddr->allocation_group, BEFS_SB(sb)->num_ags);
+		return BEFS_ERR;
+	}
 	return ((iaddr->allocation_group << BEFS_SB(sb)->ag_shift) +
 		iaddr->start);
 }
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH 2/4] befs: check return value of iaddr2blockno
  2016-08-10 22:12 [PATCH 1/4] befs: check allocation_group number before use Salah Triki
@ 2016-08-10 22:12 ` Salah Triki
  2016-08-10 22:12 ` [PATCH 3/4] befs: remove the validation of allocation group number Salah Triki
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 9+ messages in thread
From: Salah Triki @ 2016-08-10 22:12 UTC (permalink / raw)
  To: akpm, viro, luisbg; +Cc: linux-kernel, salah.triki

The call of iaddr2blockno may fail, so check its return value and
propagate error, if any.

Signed-off-by: Salah Triki <salah.triki@gmail.com>
---
 fs/befs/datastream.c | 30 ++++++++++++++++++++----------
 fs/befs/inode.c      | 10 ++++++++--
 fs/befs/io.c         |  3 +++
 fs/befs/linuxvfs.c   | 12 +++++++++++-
 4 files changed, 42 insertions(+), 13 deletions(-)

diff --git a/fs/befs/datastream.c b/fs/befs/datastream.c
index 343123c..1747f64 100644
--- a/fs/befs/datastream.c
+++ b/fs/befs/datastream.c
@@ -308,8 +308,11 @@ befs_find_brun_indirect(struct super_block *sb,
 	befs_disk_block_run *array;
 
 	befs_block_run indirect = data->indirect;
-	befs_blocknr_t indirblockno = iaddr2blockno(sb, &indirect);
 	int arraylen = befs_iaddrs_per_block(sb);
+	befs_blocknr_t indirblockno = iaddr2blockno(sb, &indirect);
+
+	if (indirblockno == BEFS_ERR)
+		return BEFS_ERR;
 
 	befs_debug(sb, "---> %s, find %lu", __func__, (unsigned long)blockno);
 
@@ -422,6 +425,7 @@ befs_find_brun_dblindirect(struct super_block *sb,
 	struct buffer_head *indir_block;
 	befs_block_run indir_run;
 	befs_disk_inode_addr *iaddr_array;
+	befs_blocknr_t block;
 
 	befs_blocknr_t indir_start_blk =
 	    data->max_indirect_range >> BEFS_SB(sb)->block_shift;
@@ -461,15 +465,17 @@ befs_find_brun_dblindirect(struct super_block *sb,
 		return BEFS_ERR;
 	}
 
-	dbl_indir_block =
-	    sb_bread(sb, iaddr2blockno(sb, &data->double_indirect) +
-					dbl_which_block);
+	block = iaddr2blockno(sb, &data->double_indirect);
+
+	if (block == BEFS_ERR)
+		return BEFS_ERR;
+
+	dbl_indir_block = sb_bread(sb, blockno + dbl_which_block);
+
 	if (dbl_indir_block == NULL) {
 		befs_error(sb, "%s couldn't read the "
 			   "double-indirect block at blockno %lu", __func__,
-			   (unsigned long)
-			   iaddr2blockno(sb, &data->double_indirect) +
-			   dbl_which_block);
+			   (unsigned long)blockno + dbl_which_block);
 		return BEFS_ERR;
 	}
 
@@ -488,12 +494,16 @@ befs_find_brun_dblindirect(struct super_block *sb,
 		return BEFS_ERR;
 	}
 
-	indir_block =
-	    sb_bread(sb, iaddr2blockno(sb, &indir_run) + which_block);
+	blockno = iaddr2blockno(sb, &indir_run);
+
+	if (blockno == BEFS_ERR)
+		return BEFS_ERR;
+
+	indir_block = sb_bread(sb, blockno + which_block);
 	if (indir_block == NULL) {
 		befs_error(sb, "%s couldn't read the indirect block "
 			   "at blockno %lu", __func__, (unsigned long)
-			   iaddr2blockno(sb, &indir_run) + which_block);
+			   blockno + which_block);
 		return BEFS_ERR;
 	}
 
diff --git a/fs/befs/inode.c b/fs/befs/inode.c
index fa4b718..495d270 100644
--- a/fs/befs/inode.c
+++ b/fs/befs/inode.c
@@ -21,6 +21,7 @@ befs_check_inode(struct super_block *sb, befs_inode * raw_inode,
 	u32 magic1 = fs32_to_cpu(sb, raw_inode->magic1);
 	befs_inode_addr ino_num = fsrun_to_cpu(sb, raw_inode->inode_num);
 	u32 flags = fs32_to_cpu(sb, raw_inode->flags);
+	befs_blocknr_t block;
 
 	/* check magic header. */
 	if (magic1 != BEFS_INODE_MAGIC1) {
@@ -33,10 +34,15 @@ befs_check_inode(struct super_block *sb, befs_inode * raw_inode,
 	/*
 	 * Sanity check2: inodes store their own block address. Check it.
 	 */
-	if (inode != iaddr2blockno(sb, &ino_num)) {
+	block = iaddr2blockno(sb, &ino_num);
+
+	if (block == BEFS_ERR)
+		return BEFS_ERR;
+
+	if (inode != block) {
 		befs_error(sb, "inode blocknr field disagrees with vfs "
 			   "VFS: %lu, Inode %lu", (unsigned long)
-			   inode, (unsigned long)iaddr2blockno(sb, &ino_num));
+			   inode, (unsigned long)block);
 		return BEFS_BAD_INODE;
 	}
 
diff --git a/fs/befs/io.c b/fs/befs/io.c
index 4223b77..14eef7d 100644
--- a/fs/befs/io.c
+++ b/fs/befs/io.c
@@ -42,6 +42,9 @@ befs_bread_iaddr(struct super_block *sb, befs_inode_addr iaddr)
 
 	block = iaddr2blockno(sb, &iaddr);
 
+	if (block == BEFS_ERR)
+		goto error;
+
 	befs_debug(sb, "%s: offset = %lu", __func__, (unsigned long)block);
 
 	bh = sb_bread(sb, block);
diff --git a/fs/befs/linuxvfs.c b/fs/befs/linuxvfs.c
index c57f831..6635515 100644
--- a/fs/befs/linuxvfs.c
+++ b/fs/befs/linuxvfs.c
@@ -143,6 +143,9 @@ befs_get_block(struct inode *inode, sector_t block,
 
 	disk_off = (ulong) iaddr2blockno(sb, &run);
 
+	if (disk_off == BEFS_ERR)
+		return -EINVAL;
+
 	map_bh(bh_result, inode->i_sb, disk_off);
 
 	befs_debug(sb, "<--- %s for inode %lu, block %ld, disk address %lu",
@@ -756,6 +759,7 @@ befs_fill_super(struct super_block *sb, void *data, int silent)
 	long ret = -EINVAL;
 	const unsigned long sb_block = 0;
 	const off_t x86_sb_off = 512;
+	befs_blocknr_t block;
 
 	save_mount_options(sb, data);
 
@@ -830,7 +834,13 @@ befs_fill_super(struct super_block *sb, void *data, int silent)
 	/* Set real blocksize of fs */
 	sb_set_blocksize(sb, (ulong) befs_sb->block_size);
 	sb->s_op = &befs_sops;
-	root = befs_iget(sb, iaddr2blockno(sb, &(befs_sb->root_dir)));
+
+	block = iaddr2blockno(sb, &(befs_sb->root_dir));
+
+	if (block == BEFS_ERR)
+		goto unacquire_priv_sbp;
+
+	root = befs_iget(sb, block);
 	if (IS_ERR(root)) {
 		ret = PTR_ERR(root);
 		goto unacquire_priv_sbp;
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH 3/4] befs: remove the validation of allocation group number
  2016-08-10 22:12 [PATCH 1/4] befs: check allocation_group number before use Salah Triki
  2016-08-10 22:12 ` [PATCH 2/4] befs: check return value of iaddr2blockno Salah Triki
@ 2016-08-10 22:12 ` Salah Triki
  2016-08-10 22:12 ` [PATCH 4/4] befs: remove unnecessary initialization Salah Triki
  2016-08-11 10:56 ` [PATCH 1/4] befs: check allocation_group number before use Luis de Bethencourt
  3 siblings, 0 replies; 9+ messages in thread
From: Salah Triki @ 2016-08-10 22:12 UTC (permalink / raw)
  To: akpm, viro, luisbg; +Cc: linux-kernel, salah.triki

Validating the allocation group number is unnecessary since it will
be done by iaddr2blockno().

Signed-off-by: Salah Triki <salah.triki@gmail.com>
---
 fs/befs/io.c | 7 -------
 1 file changed, 7 deletions(-)

diff --git a/fs/befs/io.c b/fs/befs/io.c
index 14eef7d..f9790f5 100644
--- a/fs/befs/io.c
+++ b/fs/befs/io.c
@@ -28,18 +28,11 @@ befs_bread_iaddr(struct super_block *sb, befs_inode_addr iaddr)
 {
 	struct buffer_head *bh;
 	befs_blocknr_t block = 0;
-	struct befs_sb_info *befs_sb = BEFS_SB(sb);
 
 	befs_debug(sb, "---> Enter %s "
 		   "[%u, %hu, %hu]", __func__, iaddr.allocation_group,
 		   iaddr.start, iaddr.len);
 
-	if (iaddr.allocation_group > befs_sb->num_ags) {
-		befs_error(sb, "BEFS: Invalid allocation group %u, max is %u",
-			   iaddr.allocation_group, befs_sb->num_ags);
-		goto error;
-	}
-
 	block = iaddr2blockno(sb, &iaddr);
 
 	if (block == BEFS_ERR)
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH 4/4] befs: remove unnecessary initialization
  2016-08-10 22:12 [PATCH 1/4] befs: check allocation_group number before use Salah Triki
  2016-08-10 22:12 ` [PATCH 2/4] befs: check return value of iaddr2blockno Salah Triki
  2016-08-10 22:12 ` [PATCH 3/4] befs: remove the validation of allocation group number Salah Triki
@ 2016-08-10 22:12 ` Salah Triki
  2016-08-11 11:07   ` Luis de Bethencourt
  2016-08-11 10:56 ` [PATCH 1/4] befs: check allocation_group number before use Luis de Bethencourt
  3 siblings, 1 reply; 9+ messages in thread
From: Salah Triki @ 2016-08-10 22:12 UTC (permalink / raw)
  To: akpm, viro, luisbg; +Cc: linux-kernel, salah.triki

There is no need to init block, since it will be overwitten later by
iaddr2blockno().

Signed-off-by: Salah Triki <salah.triki@gmail.com>
---
 fs/befs/io.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/fs/befs/io.c b/fs/befs/io.c
index f9790f5..39d0dce 100644
--- a/fs/befs/io.c
+++ b/fs/befs/io.c
@@ -27,7 +27,7 @@ struct buffer_head *
 befs_bread_iaddr(struct super_block *sb, befs_inode_addr iaddr)
 {
 	struct buffer_head *bh;
-	befs_blocknr_t block = 0;
+	befs_blocknr_t block;
 
 	befs_debug(sb, "---> Enter %s "
 		   "[%u, %hu, %hu]", __func__, iaddr.allocation_group,
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* Re: [PATCH 1/4] befs: check allocation_group number before use
  2016-08-10 22:12 [PATCH 1/4] befs: check allocation_group number before use Salah Triki
                   ` (2 preceding siblings ...)
  2016-08-10 22:12 ` [PATCH 4/4] befs: remove unnecessary initialization Salah Triki
@ 2016-08-11 10:56 ` Luis de Bethencourt
  2016-08-12  7:26   ` Salah Triki
  3 siblings, 1 reply; 9+ messages in thread
From: Luis de Bethencourt @ 2016-08-11 10:56 UTC (permalink / raw)
  To: Salah Triki, akpm, viro; +Cc: linux-kernel

On 10/08/16 23:12, Salah Triki wrote:
> Check that the allocation group number is not greater or equal to the
> number of allocations group in the file system and return BEF_ERR in the
> case of error.
> 
> Signed-off-by: Salah Triki <salah.triki@gmail.com>
> ---
>  fs/befs/befs.h | 5 +++++
>  1 file changed, 5 insertions(+)
> 
> diff --git a/fs/befs/befs.h b/fs/befs/befs.h
> index 55f3ea2..6daf4c4 100644
> --- a/fs/befs/befs.h
> +++ b/fs/befs/befs.h
> @@ -121,6 +121,11 @@ BEFS_I(const struct inode *inode)
>  static inline befs_blocknr_t
>  iaddr2blockno(struct super_block *sb, const befs_inode_addr *iaddr)
>  {
> +	if (iaddr->allocation_group >= BEFS_SB(sb)->num_ags) {
> +		befs_error(sb, "BEFS: Invalid allocation group %u, max is %u",
> +			   iaddr->allocation_group, BEFS_SB(sb)->num_ags);
> +		return BEFS_ERR;
> +	}
>  	return ((iaddr->allocation_group << BEFS_SB(sb)->ag_shift) +
>  		iaddr->start);
>  }
> 

Hi Salah,

To understand why would we check for this. When can this error happen? I mean,
when can iaddr2blockno() be called with an out of bounds allocation group?

Thanks,
Luis

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 4/4] befs: remove unnecessary initialization
  2016-08-10 22:12 ` [PATCH 4/4] befs: remove unnecessary initialization Salah Triki
@ 2016-08-11 11:07   ` Luis de Bethencourt
  0 siblings, 0 replies; 9+ messages in thread
From: Luis de Bethencourt @ 2016-08-11 11:07 UTC (permalink / raw)
  To: Salah Triki, akpm, viro; +Cc: linux-kernel

On 10/08/16 23:12, Salah Triki wrote:
> There is no need to init block, since it will be overwitten later by
> iaddr2blockno().
> 
> Signed-off-by: Salah Triki <salah.triki@gmail.com>
> ---
>  fs/befs/io.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/fs/befs/io.c b/fs/befs/io.c
> index f9790f5..39d0dce 100644
> --- a/fs/befs/io.c
> +++ b/fs/befs/io.c
> @@ -27,7 +27,7 @@ struct buffer_head *
>  befs_bread_iaddr(struct super_block *sb, befs_inode_addr iaddr)
>  {
>  	struct buffer_head *bh;
> -	befs_blocknr_t block = 0;
> +	befs_blocknr_t block;
>  
>  	befs_debug(sb, "---> Enter %s "
>  		   "[%u, %hu, %hu]", __func__, iaddr.allocation_group,
> 

Applied and merged to:
https://github.com/luisbg/linux-befs/commits/for-next

Thanks Salah :)
Luis

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 1/4] befs: check allocation_group number before use
  2016-08-11 10:56 ` [PATCH 1/4] befs: check allocation_group number before use Luis de Bethencourt
@ 2016-08-12  7:26   ` Salah Triki
  2016-08-12  9:38     ` Luis de Bethencourt
  0 siblings, 1 reply; 9+ messages in thread
From: Salah Triki @ 2016-08-12  7:26 UTC (permalink / raw)
  To: Luis de Bethencourt; +Cc: Salah Triki, akpm, viro, linux-kernel

On Thu, Aug 11, 2016 at 11:56:16AM +0100, Luis de Bethencourt wrote:
> On 10/08/16 23:12, Salah Triki wrote:
> > Check that the allocation group number is not greater or equal to the
> > number of allocations group in the file system and return BEF_ERR in the
> > case of error.
> > 
> > Signed-off-by: Salah Triki <salah.triki@gmail.com>
> > ---
> >  fs/befs/befs.h | 5 +++++
> >  1 file changed, 5 insertions(+)
> > 
> > diff --git a/fs/befs/befs.h b/fs/befs/befs.h
> > index 55f3ea2..6daf4c4 100644
> > --- a/fs/befs/befs.h
> > +++ b/fs/befs/befs.h
> > @@ -121,6 +121,11 @@ BEFS_I(const struct inode *inode)
> >  static inline befs_blocknr_t
> >  iaddr2blockno(struct super_block *sb, const befs_inode_addr *iaddr)
> >  {
> > +	if (iaddr->allocation_group >= BEFS_SB(sb)->num_ags) {
> > +		befs_error(sb, "BEFS: Invalid allocation group %u, max is %u",
> > +			   iaddr->allocation_group, BEFS_SB(sb)->num_ags);
> > +		return BEFS_ERR;
> > +	}
> >  	return ((iaddr->allocation_group << BEFS_SB(sb)->ag_shift) +
> >  		iaddr->start);
> >  }
> > 
> 
> Hi Salah,
> 
> To understand why would we check for this. When can this error happen? I mean,
> when can iaddr2blockno() be called with an out of bounds allocation group?
> 
> Thanks,
> Luis

Hi Luis,

allocation group number is set to blockno >> BEFS_SB(sb)->ag_shift by 
blockno2iaddr(), so if ag_shift is not valid, an out of bound may occur. 
By now, thanx to your question ;), I think it's better to check the validity 
of ag_shift when the superblock is loaded.

Nack.

Thanx for the question :)
Salah 

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 1/4] befs: check allocation_group number before use
  2016-08-12  7:26   ` Salah Triki
@ 2016-08-12  9:38     ` Luis de Bethencourt
  2016-08-12 10:17       ` Salah Triki
  0 siblings, 1 reply; 9+ messages in thread
From: Luis de Bethencourt @ 2016-08-12  9:38 UTC (permalink / raw)
  To: Salah Triki; +Cc: akpm, viro, linux-kernel

On 12/08/16 08:26, Salah Triki wrote:
> On Thu, Aug 11, 2016 at 11:56:16AM +0100, Luis de Bethencourt wrote:
>> On 10/08/16 23:12, Salah Triki wrote:
>>> Check that the allocation group number is not greater or equal to the
>>> number of allocations group in the file system and return BEF_ERR in the
>>> case of error.
>>>
>>> Signed-off-by: Salah Triki <salah.triki@gmail.com>
>>> ---
>>>  fs/befs/befs.h | 5 +++++
>>>  1 file changed, 5 insertions(+)
>>>
>>> diff --git a/fs/befs/befs.h b/fs/befs/befs.h
>>> index 55f3ea2..6daf4c4 100644
>>> --- a/fs/befs/befs.h
>>> +++ b/fs/befs/befs.h
>>> @@ -121,6 +121,11 @@ BEFS_I(const struct inode *inode)
>>>  static inline befs_blocknr_t
>>>  iaddr2blockno(struct super_block *sb, const befs_inode_addr *iaddr)
>>>  {
>>> +	if (iaddr->allocation_group >= BEFS_SB(sb)->num_ags) {
>>> +		befs_error(sb, "BEFS: Invalid allocation group %u, max is %u",
>>> +			   iaddr->allocation_group, BEFS_SB(sb)->num_ags);
>>> +		return BEFS_ERR;
>>> +	}
>>>  	return ((iaddr->allocation_group << BEFS_SB(sb)->ag_shift) +
>>>  		iaddr->start);
>>>  }
>>>
>>
>> Hi Salah,
>>
>> To understand why would we check for this. When can this error happen? I mean,
>> when can iaddr2blockno() be called with an out of bounds allocation group?
>>
>> Thanks,
>> Luis
> 
> Hi Luis,
> 
> allocation group number is set to blockno >> BEFS_SB(sb)->ag_shift by 
> blockno2iaddr(), so if ag_shift is not valid, an out of bound may occur. 
> By now, thanx to your question ;), I think it's better to check the validity 
> of ag_shift when the superblock is loaded.
> 
> Nack.
> 
> Thanx for the question :)
> Salah 
> 

No problem :)

I will assume the Nack covers patch 1 to 3. Since they are all related.

Enjoy the weekend,
Luis

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 1/4] befs: check allocation_group number before use
  2016-08-12  9:38     ` Luis de Bethencourt
@ 2016-08-12 10:17       ` Salah Triki
  0 siblings, 0 replies; 9+ messages in thread
From: Salah Triki @ 2016-08-12 10:17 UTC (permalink / raw)
  To: Luis de Bethencourt; +Cc: akpm, viro, linux-kernel

On Fri, Aug 12, 2016 at 10:38:58AM +0100, Luis de Bethencourt wrote:
> On 12/08/16 08:26, Salah Triki wrote:
> > On Thu, Aug 11, 2016 at 11:56:16AM +0100, Luis de Bethencourt wrote:
> >> On 10/08/16 23:12, Salah Triki wrote:
> >>> Check that the allocation group number is not greater or equal to the
> >>> number of allocations group in the file system and return BEF_ERR in the
> >>> case of error.
> >>>
> >>> Signed-off-by: Salah Triki <salah.triki@gmail.com>
> >>> ---
> >>>  fs/befs/befs.h | 5 +++++
> >>>  1 file changed, 5 insertions(+)
> >>>
> >>> diff --git a/fs/befs/befs.h b/fs/befs/befs.h
> >>> index 55f3ea2..6daf4c4 100644
> >>> --- a/fs/befs/befs.h
> >>> +++ b/fs/befs/befs.h
> >>> @@ -121,6 +121,11 @@ BEFS_I(const struct inode *inode)
> >>>  static inline befs_blocknr_t
> >>>  iaddr2blockno(struct super_block *sb, const befs_inode_addr *iaddr)
> >>>  {
> >>> +	if (iaddr->allocation_group >= BEFS_SB(sb)->num_ags) {
> >>> +		befs_error(sb, "BEFS: Invalid allocation group %u, max is %u",
> >>> +			   iaddr->allocation_group, BEFS_SB(sb)->num_ags);
> >>> +		return BEFS_ERR;
> >>> +	}
> >>>  	return ((iaddr->allocation_group << BEFS_SB(sb)->ag_shift) +
> >>>  		iaddr->start);
> >>>  }
> >>>
> >>
> >> Hi Salah,
> >>
> >> To understand why would we check for this. When can this error happen? I mean,
> >> when can iaddr2blockno() be called with an out of bounds allocation group?
> >>
> >> Thanks,
> >> Luis
> > 
> > Hi Luis,
> > 
> > allocation group number is set to blockno >> BEFS_SB(sb)->ag_shift by 
> > blockno2iaddr(), so if ag_shift is not valid, an out of bound may occur. 
> > By now, thanx to your question ;), I think it's better to check the validity 
> > of ag_shift when the superblock is loaded.
> > 
> > Nack.
> > 
> > Thanx for the question :)
> > Salah 
> > 
> 
> No problem :)
> 
> I will assume the Nack covers patch 1 to 3. Since they are all related.
> 
> Enjoy the weekend,
> Luis

You too.
Salah

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2016-08-12 10:17 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-08-10 22:12 [PATCH 1/4] befs: check allocation_group number before use Salah Triki
2016-08-10 22:12 ` [PATCH 2/4] befs: check return value of iaddr2blockno Salah Triki
2016-08-10 22:12 ` [PATCH 3/4] befs: remove the validation of allocation group number Salah Triki
2016-08-10 22:12 ` [PATCH 4/4] befs: remove unnecessary initialization Salah Triki
2016-08-11 11:07   ` Luis de Bethencourt
2016-08-11 10:56 ` [PATCH 1/4] befs: check allocation_group number before use Luis de Bethencourt
2016-08-12  7:26   ` Salah Triki
2016-08-12  9:38     ` Luis de Bethencourt
2016-08-12 10:17       ` Salah Triki

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.