[-mm patch] do_revoke error handling (was Re: 2.6.21-mm1)

Frederik Deweerdt
2007-05-05T21:14:22Z

On Sat, May 05, 2007 at 01:49:55AM -0700, Andrew Morton wrote:
>
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.21/2.6.21-mm1/
>
fs/revoke.c: In function 'do_revoke':
fs/revoke.c:563: warning: 'details.fset' may be used uninitialized in this function
fs/revoke.c:563: warning: 'details.restore_start' may be used uninitialized in this function

It seems that we should goto 'out_free_table' if an error happens in
the mainloop. Otherwise 'details' is passed to restore_files() without
being initialized.

Regards,
Frederik

Signed-off-by: Frederik Deweerdt <frederik.deweerdt@gmail.com>
diff --git a/fs/revoke.c b/fs/revoke.c
index 1f2e3ef..6ab5223 100644
--- a/fs/revoke.c
+++ b/fs/revoke.c
@@ -611,7 +611,7 @@ static int do_revoke(struct inode *inode, struct file *to_exclude)
read_unlock(&tasklist_lock);

if (err)
- goto out_restore;
+ goto out_free_table;

/*
* Take down shared memory mappings.
@@ -623,7 +623,7 @@ static int do_revoke(struct inode *inode, struct file *to_exclude)
*/
err = revoke_break_cow(fset, inode, to_exclude);
if (err)
- goto out_restore;
+ goto out_free_table;

details.fset = fset;
details.restore_start = 0;