| From 8321cf2596d283821acc466377c2b85bcd3422b7 Mon Sep 17 00:00:00 2001 |
| From: Rickard Strandqvist <rickard_strandqvist@spectrumdigital.se> |
| Date: Thu, 22 May 2014 22:43:43 +0200 |
| Subject: fs: btrfs: volumes.c: Fix for possible null pointer dereference |
| |
| From: Rickard Strandqvist <rickard_strandqvist@spectrumdigital.se> |
| |
| commit 8321cf2596d283821acc466377c2b85bcd3422b7 upstream. |
| |
| There is otherwise a risk of a possible null pointer dereference. |
| |
| Was largely found by using a static code analysis program called cppcheck. |
| |
| Signed-off-by: Rickard Strandqvist <rickard_strandqvist@spectrumdigital.se> |
| Signed-off-by: Chris Mason <clm@fb.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| fs/btrfs/volumes.c | 5 +++-- |
| 1 file changed, 3 insertions(+), 2 deletions(-) |
| |
| --- a/fs/btrfs/volumes.c |
| +++ b/fs/btrfs/volumes.c |
| @@ -1446,11 +1446,12 @@ int btrfs_rm_device(struct btrfs_root *r |
| struct btrfs_fs_devices *fs_devices; |
| fs_devices = root->fs_info->fs_devices; |
| while (fs_devices) { |
| - if (fs_devices->seed == cur_devices) |
| + if (fs_devices->seed == cur_devices) { |
| + fs_devices->seed = cur_devices->seed; |
| break; |
| + } |
| fs_devices = fs_devices->seed; |
| } |
| - fs_devices->seed = cur_devices->seed; |
| cur_devices->seed = NULL; |
| lock_chunks(root); |
| __btrfs_close_devices(cur_devices); |