lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <s5h4puspal8.wl%tiwai@suse.de>
Date:	Thu, 28 Sep 2006 12:08:35 +0200
From:	Takashi Iwai <tiwai@...e.de>
To:	Karsten Wiese <annabellesgarden@...oo.de>
Cc:	mingo@...e.hu, alsa-devel@...ts.sourceforge.net,
	linux-kernel@...r.kernel.org
Subject: Re: [PATCH] Reset file->f_op in snd_card_file_remove()

At Wed, 27 Sep 2006 21:27:51 +0200,
Karsten Wiese wrote:
> 
> Hi
> 
> This patch helps prevent an oops on 2.6.18-rt3,
> when my usb usx2y soundcard disconnects.
> Physically disconnects or "rmmod uhci_hc" both oops 1in7.
> 
> With this patch still no oops after > 1000 disconnects.
> 
> Please apply/comment.
> 
>       thanks,
>       Karsten
> 
> ===
> 
> Reset file->f_op in snd_card_file_remove()
> 
> When passing here in response to an usb disconnect,
> file->f_op has been replaced with a kmalloc()ed version,
> that would only allow releases.
> 
> It will be free()ed later on in snd_card_free().
> Here it happened sometimes, that the free()ed, not NULLed file->f_op
> caused an oops in module_put() called by fops_put() still later on.
> 
> Signed-off-by: Karsten Wiese <annabellesgarden@...oo.de>

snd_card_file_remove() is not a right place to do that, IMO.

Could you check whether this problem still happens on post-2.6.18?
There are a lot of fixes in this area after 2.6.18.


Takashi
> 
> 
> 
> --- rt3/sound/core/init.c	2006-09-23 20:03:18.000000000 +0200
> +++ rt3-kw/sound/core/init.c	2006-09-27 20:44:54.000000000 +0200
> @@ -722,6 +722,7 @@ int snd_card_file_remove(struct snd_card
>  	mfile = card->files;
>  	while (mfile) {
>  		if (mfile->file == file) {
> +			file->f_op = NULL;
>  			if (pfile)
>  				pfile->next = mfile->next;
>  			else
> 
> 	
> 
> 	
> 		
> ___________________________________________________________ 
> Der frühe Vogel fängt den Wurm. Hier gelangen Sie zum neuen Yahoo! Mail: http://mail.yahoo.de
> 
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ