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] [thread-next>] [day] [month] [year] [list]
Message-ID: <20090323095347.GO28946@ZenIV.linux.org.uk>
Date:	Mon, 23 Mar 2009 09:53:47 +0000
From:	Al Viro <viro@...IV.linux.org.uk>
To:	Eric Paris <eparis@...hat.com>
Cc:	linux-kernel@...r.kernel.org, hch@...radead.org,
	alan@...rguk.ukuu.org.uk, sfr@...b.auug.org.au,
	john@...nmccutchan.com, rlove@...ve.org, akpm@...ux-foundation.org
Subject: Re: [PATCH 04/13] fsnotify: add in inode fsnotify markings

On Mon, Mar 23, 2009 at 09:28:30AM +0000, Al Viro wrote:
> Note that for inotify ->freeing_mark() will happily add notification to
> group's queue and that's another race of the same nature - even if
> group itself isn't yet freed, that final put_group() might bloody well
> get past flushing the queue.
> 
> I really don't like the idea of having marks contributing to group refcount -
> that would have solved this one, but we'd get potential leaks from hell ;-/
> Maybe a separate counter controlling only actual freeing of group?

Actually, let's make it
	number of entries with this ->group +
	1 if group is not past the eviction of marks in destroy_group
Then destroy_group would evict marks, decrement that sucker and if it's 0 -
call rest_of_destroy_group().  And destroy_mark_by_entry() would
do the same decrement-and-call-if-0.  With everything starting at queue
flush done in rest_of_destroy_group().

AFAICS, that would work without creating leaks.  Comments?
--
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