[2.6 patch] fs/attr.c: fix check after use

From: Adrian Bunk
Date: Thu Mar 24 2005 - 21:06:52 EST


On Wed, Mar 23, 2005 at 07:18:45PM -0800, Chris Wright wrote:
> * Adrian Bunk (bunk@xxxxxxxxx) wrote:
> > --- linux-2.6.12-rc1-mm1-full/fs/attr.c.old 2005-03-23 04:44:40.000000000 +0100
> > +++ linux-2.6.12-rc1-mm1-full/fs/attr.c 2005-03-23 04:45:40.000000000 +0100
> > @@ -112,7 +112,7 @@
> > int notify_change(struct dentry * dentry, struct iattr * attr)
> > {
> > struct inode *inode = dentry->d_inode;
> > - mode_t mode = inode->i_mode;
> > + mode_t mode;
> > int error;
> > struct timespec now = current_fs_time(inode->i_sb);
>
> looks like same issue here too?
>...

You forgot to a attach a brown paperbag. ;-)

Corrected patch below.

cu
Adrian


<-- snip -->


This patch fixes a check after use found by the Coverity checker.

Signed-off-by: Adrian Bunk <bunk@xxxxxxxxx>

--- linux-2.6.12-rc1-mm2-full/fs/attr.c.old 2005-03-25 01:02:32.000000000 +0100
+++ linux-2.6.12-rc1-mm2-full/fs/attr.c 2005-03-25 01:05:18.000000000 +0100
@@ -112,14 +112,17 @@
int notify_change(struct dentry * dentry, struct iattr * attr)
{
struct inode *inode = dentry->d_inode;
- mode_t mode = inode->i_mode;
+ mode_t mode;
int error;
- struct timespec now = current_fs_time(inode->i_sb);
+ struct timespec now;
unsigned int ia_valid = attr->ia_valid;

if (!inode)
BUG();

+ mode = inode->i_mode;
+ now = current_fs_time(inode->i_sb);
+
attr->ia_ctime = now;
if (!(ia_valid & ATTR_ATIME_SET))
attr->ia_atime = now;

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/