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: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20070604155316.GA10438@cvg>
Date:	Mon, 4 Jun 2007 19:53:16 +0400
From:	Cyrill Gorcunov <gorcunov@...il.com>
To:	Jan Kara <jack@...e.cz>
Cc:	Eric Sandeen <sandeen@...deen.net>,
	Andrew Morton <akpm@...ux-foundation.org>,
	linux-kernel@...r.kernel.org, Cyrill Gorcunov <gorcunov@...il.com>
Subject: Re: [PATCH 2/2] Fix possible leakage of blocks in UDF

[Jan Kara - Fri, Jun 01, 2007 at 11:10:36PM +0200]
| On Wed 30-05-07 16:46:28, Eric Sandeen wrote:
| > Jan Kara wrote:
| > >   Hello,
| > > 
| > > On Thu 24-05-07 19:05:54, Jan Kara wrote:
| > >>   Hello,
| > >>
| > >>   attached is a patch that fixes possible leakage of free blocks / use of
| > >> free blocks in UDF (which spilled nice assertion failures I've added in my
| > >> first round of patches). More details in the changelog. Andrew, please apply.
| > >> Both changes have survived some time of fsx and fsstress testing so they
| > >> should be reasonably safe.
| > >   Sorry for replying to myself but this patch had a minor problem of
| > > printing some bogus warnings when directories were deleted (I wonder why
| > > fsstress didn't find it). Attached is a new version of the patch without
| > > this problem.
| > 
| > Jan, something seems busted here.  I'm getting lockups when testing udf
| > on a single cpu with this last patch in place...
|   Hmm, strange, I was also testing on UP and without problems. And I didn't
| change any locking...
| 
| > I think it's the BKL stumbling on itself.
| > 
| > for example...
| > 
| > static int udf_symlink(struct inode * dir, struct dentry * dentry, const
| > char * symname)
| > {
| > ...
| >         lock_kernel();
| > ...
| > out:
| >         unlock_kernel();
| >         return err;
| > 
| > out_no_entry:
| >         inode_dec_link_count(inode);
| >         iput(inode);
| >         goto out;
| > }
| > 
| > but iput goes
| > iput->iput_final->drop_inode->udf_drop_inode->lock_kernel() again
|   As Andrew already wrote, BKL is free to recurse...
| 
| > looking for the right way around it but figured I'd ping you early :)
|   Thanks for info - I'm now mostly out of email for a few days but I'll
| have a look at it as soon as I return.
| 
| 								Honza
| -- 
| Jan Kara <jack@...e.cz>
| SuSE CR Labs
| 

Hi Jan,

why can't we combine udf_delete_inode() with udf_drop_inode()?
It'll avoid deadlock.

		Cyrill

-
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