[syslinux] [PATCH] add additional checks to ext2 loader
Matt Fleming
matt at console-pimps.org
Wed Oct 10 03:05:06 PDT 2012
On Tue, 2012-10-09 at 14:32 -0300, Paulo Alcantara wrote:
> From: Frediano Ziglio <frediano.ziglio at citrix.com>
> Date: Thu, 2 Aug 2012 09:32:36 +0100
>
> > e_inode = ext2_get_inode(fs, inr);
> > - if (!(inode = alloc_inode(fs, inr, sizeof(struct ext2_pvt_inode))))
> > + if (!e_inode || !(inode = alloc_inode(fs, inr, sizeof(struct ext2_pvt_inode))))
> > return NULL;
>
> You could at least refactor this. This if-statement is just horrible and hard to
> read at glance.
Guys, below is the commit I've merged. Does it look OK to both of you?
Frediano, note that you are still listed as the author.
>From e45f3540ae7a6298f27d77d1273375a3d765ca38 Mon Sep 17 00:00:00 2001
From: Frediano Ziglio <frediano.ziglio at citrix.com>
Date: Thu, 2 Aug 2012 09:32:36 +0100
Subject: [PATCH] ext2: add additional check to ext2 loader
Check if a pointer is NULL due to specifying an invalid inode group
number.
Signed-off-by: Frediano Ziglio <frediano.ziglio at citrix.com>
Signed-off-by: Matt Fleming <matt.fleming at intel.com>
---
core/fs/ext2/ext2.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/core/fs/ext2/ext2.c b/core/fs/ext2/ext2.c
index 716670c..7988faa 100644
--- a/core/fs/ext2/ext2.c
+++ b/core/fs/ext2/ext2.c
@@ -164,6 +164,9 @@ static struct inode *ext2_iget_by_inr(struct fs_info *fs, uint32_t inr)
struct inode *inode;
e_inode = ext2_get_inode(fs, inr);
+ if (!e_inode)
+ return NULL;
+
if (!(inode = alloc_inode(fs, inr, sizeof(struct ext2_pvt_inode))))
return NULL;
fill_inode(inode, e_inode);
--
1.7.11.4
--
Matt Fleming, Intel Open Source Technology Center
More information about the Syslinux
mailing list