public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* Re: [PATCH] Fixes supermount Oopses when mount options are not given
  2002-02-01 17:45 [PATCH] Fixes supermount Oopses when mount options are not given Eduardo Pereira Habkost
@ 2002-02-01 17:41 ` Juan Quintela
  0 siblings, 0 replies; 2+ messages in thread
From: Juan Quintela @ 2002-02-01 17:41 UTC (permalink / raw)
  To: Eduardo Pereira Habkost; +Cc: linux-kernel, linux-fsdevel

>>>>> "eduardo" == Eduardo Pereira Habkost <ehabkost@conectiva.com.br> writes:

eduardo> The following patch fixes two Oopses on supermount.
eduardo> The first one happens when the dev= option is not given to supermount, iput()
eduardo> is called after dput(), but iput() is already called by dput().
eduardo> The other one happens when the fs= option is not given. subfs_mount() doesn't
eduardo> check if sbi->s_type is NULL.

eduardo> Regards,

eduardo> --
eduardo> Eduardo Pereira Habkost <ehabkost@conectiva.com.br>
eduardo> http://www.boto.f2s.com
eduardo> 04BE D2EF 5A56 E446 D424  4785 71A4 49EB AC35 9568
eduardo> ----

eduardo> # ------------------------
eduardo> diff -urN kernel-2.4.17/linux/fs/supermount/super.c kernel-2.4.17-supermountok/linux/fs/supermount/super.c
eduardo> --- kernel-2.4.17/linux/fs/supermount/super.c	Fri Feb  1 14:10:39 2002
eduardo> +++ kernel-2.4.17-supermountok/linux/fs/supermount/super.c	Fri Feb  1 11:56:36 2002
eduardo> @@ -276,7 +276,7 @@
eduardo> char **type = types_in_order;
 
 
eduardo> -	if (strcmp(sbi->s_type, "auto"))
eduardo> +	if (sbi->s_type && strcmp(sbi->s_type, "auto"))
eduardo> return subfs_real_mount2 (sb, sbi->s_type);
 		
eduardo> while (*type && retval) {
eduardo> diff -urN kernel-2.4.17/linux/fs/supermount/super_operations.c kernel-2.4.17-supermountok/linux/fs/supermount/super_operations.c
eduardo> --- kernel-2.4.17/linux/fs/supermount/super_operations.c	Fri Feb  1 14:10:39 2002
eduardo> +++ kernel-2.4.17-supermountok/linux/fs/supermount/super_operations.c	Fri Feb  1 11:56:36 2002
eduardo> @@ -279,10 +279,12 @@
eduardo> return s;
eduardo> fail_parsing:
s-> s_dev = 0;
eduardo> -	dput (root);
eduardo> fail_allocating_root:
eduardo> supermount_debug ("get root dentry failed");
eduardo> -	iput (root_inode);
eduardo> +	if(root)
eduardo> +		dput (root);
eduardo> +	else
eduardo> +		iput (root_inode);
eduardo> free_sbi (sbi);
eduardo> fail_no_memory:
eduardo> return NULL;

THanks a lot.

Later, Juan.

-- 
In theory, practice and theory are the same, but in practice they 
are different -- Larry McVoy

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

* [PATCH] Fixes supermount Oopses when mount options are not given
@ 2002-02-01 17:45 Eduardo Pereira Habkost
  2002-02-01 17:41 ` Juan Quintela
  0 siblings, 1 reply; 2+ messages in thread
From: Eduardo Pereira Habkost @ 2002-02-01 17:45 UTC (permalink / raw)
  To: quintela; +Cc: linux-kernel, linux-fsdevel

[-- Attachment #1: Type: text/plain, Size: 1586 bytes --]

The following patch fixes two Oopses on supermount.
The first one happens when the dev= option is not given to supermount, iput()
is called after dput(), but iput() is already called by dput().
The other one happens when the fs= option is not given. subfs_mount() doesn't
check if sbi->s_type is NULL.

Regards,

--
Eduardo Pereira Habkost <ehabkost@conectiva.com.br>
http://www.boto.f2s.com
04BE D2EF 5A56 E446 D424  4785 71A4 49EB AC35 9568
----

# ------------------------
diff -urN kernel-2.4.17/linux/fs/supermount/super.c kernel-2.4.17-supermountok/linux/fs/supermount/super.c
--- kernel-2.4.17/linux/fs/supermount/super.c	Fri Feb  1 14:10:39 2002
+++ kernel-2.4.17-supermountok/linux/fs/supermount/super.c	Fri Feb  1 11:56:36 2002
@@ -276,7 +276,7 @@
 	char **type = types_in_order;
 
 
-	if (strcmp(sbi->s_type, "auto"))
+	if (sbi->s_type && strcmp(sbi->s_type, "auto"))
 		return subfs_real_mount2 (sb, sbi->s_type);
 		
 	while (*type && retval) {
diff -urN kernel-2.4.17/linux/fs/supermount/super_operations.c kernel-2.4.17-supermountok/linux/fs/supermount/super_operations.c
--- kernel-2.4.17/linux/fs/supermount/super_operations.c	Fri Feb  1 14:10:39 2002
+++ kernel-2.4.17-supermountok/linux/fs/supermount/super_operations.c	Fri Feb  1 11:56:36 2002
@@ -279,10 +279,12 @@
 	return s;
 fail_parsing:
 	s->s_dev = 0;
-	dput (root);
 fail_allocating_root:
 	supermount_debug ("get root dentry failed");
-	iput (root_inode);
+	if(root)
+		dput (root);
+	else
+		iput (root_inode);
 	free_sbi (sbi);
 fail_no_memory:
 	return NULL;

[-- Attachment #2: Type: application/pgp-signature, Size: 232 bytes --]

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

end of thread, other threads:[~2002-02-01 17:51 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2002-02-01 17:45 [PATCH] Fixes supermount Oopses when mount options are not given Eduardo Pereira Habkost
2002-02-01 17:41 ` Juan Quintela

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox