diff options
author | Jiri Slaby <jirislaby@gmail.com> | 2009-07-02 13:50:58 -0400 |
---|---|---|
committer | Chris Mason <chris.mason@oracle.com> | 2009-07-02 13:50:58 -0400 |
commit | 9b627e9bf49ebfeb060dfae0435bdba06cf27cb8 (patch) | |
tree | cbd6255b5dd72f7b17c08ac5bfab9a95819008ee /fs | |
parent | 9427216476d4fa75103f39d4b228c47d56ba20da (diff) | |
download | linux-3.10-9b627e9bf49ebfeb060dfae0435bdba06cf27cb8.tar.gz linux-3.10-9b627e9bf49ebfeb060dfae0435bdba06cf27cb8.tar.bz2 linux-3.10-9b627e9bf49ebfeb060dfae0435bdba06cf27cb8.zip |
Btrfs: fix use after free in btrfs_start_workers fail path
worker memory is already freed on one fail path in btrfs_start_workers,
but is still dereferenced. Switch the dereference and kfree.
Signed-off-by: Jiri Slaby <jirislaby@gmail.com>
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Diffstat (limited to 'fs')
-rw-r--r-- | fs/btrfs/async-thread.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/btrfs/async-thread.c b/fs/btrfs/async-thread.c index 7f88628a1a7..6e4f6c50a12 100644 --- a/fs/btrfs/async-thread.c +++ b/fs/btrfs/async-thread.c @@ -299,8 +299,8 @@ int btrfs_start_workers(struct btrfs_workers *workers, int num_workers) "btrfs-%s-%d", workers->name, workers->num_workers + i); if (IS_ERR(worker->task)) { - kfree(worker); ret = PTR_ERR(worker->task); + kfree(worker); goto fail; } |