This patch fixes a check after use found by the Coverity checker.
Signed-off-by: Adrian Bunk <[email protected]>
--- 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);
unsigned int ia_valid = attr->ia_valid;
@@ -120,6 +120,8 @@
if (!inode)
BUG();
+ mode = inode->i_mode;
+
attr->ia_ctime = now;
if (!(ia_valid & ATTR_ATIME_SET))
attr->ia_atime = now;
* Adrian Bunk ([email protected]) 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?
> unsigned int ia_valid = attr->ia_valid;
> @@ -120,6 +120,8 @@
> if (!inode)
> BUG();
>
> + mode = inode->i_mode;
> +
On Wed, Mar 23, 2005 at 07:18:45PM -0800, Chris Wright wrote:
> * Adrian Bunk ([email protected]) 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 <[email protected]>
--- 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;