All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] btrfs: Fix incorrect check causing NULL pointer derefernce
@ 2019-12-15 17:32 Aditya Pakki
  2019-12-15 19:56 ` [PATCH] btrfs: Fix incorrect check Markus Elfring
  2019-12-16 16:16 ` [PATCH] btrfs: Fix incorrect check causing NULL pointer derefernce David Sterba
  0 siblings, 2 replies; 3+ messages in thread
From: Aditya Pakki @ 2019-12-15 17:32 UTC (permalink / raw)
  To: pakki001
  Cc: kjlu, Chris Mason, Josef Bacik, David Sterba, linux-btrfs, linux-kernel

In btrfsic_process_superblock, argument state is dereferenced for
the variable fs_info and then checked for NULL. The patch fixes
this issue by returning an error if state is NULL and then assigns
fs_info.

Signed-off-by: Aditya Pakki <pakki001@umn.edu>
---
 fs/btrfs/check-integrity.c | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/fs/btrfs/check-integrity.c b/fs/btrfs/check-integrity.c
index 0b52ab4cb964..70d7a05cafad 100644
--- a/fs/btrfs/check-integrity.c
+++ b/fs/btrfs/check-integrity.c
@@ -629,15 +629,18 @@ static struct btrfsic_dev_state *btrfsic_dev_state_hashtable_lookup(dev_t dev,
 static int btrfsic_process_superblock(struct btrfsic_state *state,
 				      struct btrfs_fs_devices *fs_devices)
 {
-	struct btrfs_fs_info *fs_info = state->fs_info;
-	struct btrfs_super_block *selected_super;
+	struct btrfsic_dev_state *selected_dev_state = NULL;
 	struct list_head *dev_head = &fs_devices->devices;
+	struct btrfs_super_block *selected_super;
+	struct btrfs_fs_info *fs_info;
 	struct btrfs_device *device;
-	struct btrfsic_dev_state *selected_dev_state = NULL;
 	int ret = 0;
 	int pass;
 
-	BUG_ON(NULL == state);
+	if (!state)
+		return -EINVAL;
+
+	fs_info = state->fs_info;
 	selected_super = kzalloc(sizeof(*selected_super), GFP_NOFS);
 	if (NULL == selected_super) {
 		pr_info("btrfsic: error, kmalloc failed!\n");
-- 
2.20.1


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH] btrfs: Fix incorrect check
  2019-12-15 17:32 [PATCH] btrfs: Fix incorrect check causing NULL pointer derefernce Aditya Pakki
@ 2019-12-15 19:56 ` Markus Elfring
  2019-12-16 16:16 ` [PATCH] btrfs: Fix incorrect check causing NULL pointer derefernce David Sterba
  1 sibling, 0 replies; 3+ messages in thread
From: Markus Elfring @ 2019-12-15 19:56 UTC (permalink / raw)
  To: Aditya Pakki, linux-btrfs
  Cc: linux-kernel, Chris Mason, David Sterba, Josef Bacik, Kangjie Lu

> The patch fixes this issue by returning an error if state is NULL
> and then assigns fs_info.

Please improve the change message (besides avoiding a typo in the subject).

Would you like to add the tag “Fixes”?

Regards,
Markus

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] btrfs: Fix incorrect check causing NULL pointer derefernce
  2019-12-15 17:32 [PATCH] btrfs: Fix incorrect check causing NULL pointer derefernce Aditya Pakki
  2019-12-15 19:56 ` [PATCH] btrfs: Fix incorrect check Markus Elfring
@ 2019-12-16 16:16 ` David Sterba
  1 sibling, 0 replies; 3+ messages in thread
From: David Sterba @ 2019-12-16 16:16 UTC (permalink / raw)
  To: Aditya Pakki
  Cc: kjlu, Chris Mason, Josef Bacik, David Sterba, linux-btrfs, linux-kernel

On Sun, Dec 15, 2019 at 11:32:26AM -0600, Aditya Pakki wrote:
> In btrfsic_process_superblock, argument state is dereferenced for
> the variable fs_info and then checked for NULL. The patch fixes
> this issue by returning an error if state is NULL and then assigns
> fs_info.
> 
> Signed-off-by: Aditya Pakki <pakki001@umn.edu>
> ---
>  fs/btrfs/check-integrity.c | 11 +++++++----
>  1 file changed, 7 insertions(+), 4 deletions(-)
> 
> diff --git a/fs/btrfs/check-integrity.c b/fs/btrfs/check-integrity.c
> index 0b52ab4cb964..70d7a05cafad 100644
> --- a/fs/btrfs/check-integrity.c
> +++ b/fs/btrfs/check-integrity.c
> @@ -629,15 +629,18 @@ static struct btrfsic_dev_state *btrfsic_dev_state_hashtable_lookup(dev_t dev,
>  static int btrfsic_process_superblock(struct btrfsic_state *state,
>  				      struct btrfs_fs_devices *fs_devices)
>  {
> -	struct btrfs_fs_info *fs_info = state->fs_info;
> -	struct btrfs_super_block *selected_super;
> +	struct btrfsic_dev_state *selected_dev_state = NULL;
>  	struct list_head *dev_head = &fs_devices->devices;
> +	struct btrfs_super_block *selected_super;
> +	struct btrfs_fs_info *fs_info;
>  	struct btrfs_device *device;
> -	struct btrfsic_dev_state *selected_dev_state = NULL;
>  	int ret = 0;
>  	int pass;
>  
> -	BUG_ON(NULL == state);

A fix for this has already been merged to our development queue. Thanks.

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2019-12-16 16:16 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-12-15 17:32 [PATCH] btrfs: Fix incorrect check causing NULL pointer derefernce Aditya Pakki
2019-12-15 19:56 ` [PATCH] btrfs: Fix incorrect check Markus Elfring
2019-12-16 16:16 ` [PATCH] btrfs: Fix incorrect check causing NULL pointer derefernce David Sterba

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.