<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/fs, branch v2.6.34</title>
<subtitle>Mirror of https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/
</subtitle>
<id>https://git.shady.money/linux/atom?h=v2.6.34</id>
<link rel='self' href='https://git.shady.money/linux/atom?h=v2.6.34'/>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/'/>
<updated>2010-05-15T19:55:31Z</updated>
<entry>
<title>Merge git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable</title>
<updated>2010-05-15T19:55:31Z</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2010-05-15T19:55:31Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=18e41da89d55014d25b9a24502ee92b7f50599f9'/>
<id>urn:sha1:18e41da89d55014d25b9a24502ee92b7f50599f9</id>
<content type='text'>
* git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable:
  Btrfs: check for read permission on src file in the clone ioctl
</content>
</entry>
<entry>
<title>Btrfs: check for read permission on src file in the clone ioctl</title>
<updated>2010-05-15T16:05:50Z</updated>
<author>
<name>Dan Rosenberg</name>
<email>dan.j.rosenberg@gmail.com</email>
</author>
<published>2010-05-15T15:27:37Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=5dc6416414fb3ec6e2825fd4d20c8bf1d7fe0395'/>
<id>urn:sha1:5dc6416414fb3ec6e2825fd4d20c8bf1d7fe0395</id>
<content type='text'>
The existing code would have allowed you to clone a file that was
only open for writing

Signed-off-by: Chris Mason &lt;chris.mason@oracle.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6</title>
<updated>2010-05-15T16:03:15Z</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2010-05-15T16:03:15Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=3f8bf8f0fd79410fbcbf9dd9910dbc9d4882c94f'/>
<id>urn:sha1:3f8bf8f0fd79410fbcbf9dd9910dbc9d4882c94f</id>
<content type='text'>
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6:
  JFS: Free sbi memory in error path
  fs/sysv: dereferencing ERR_PTR()
  Fix double-free in logfs
  Fix the regression created by "set S_DEAD on unlink()..." commit
</content>
</entry>
<entry>
<title>JFS: Free sbi memory in error path</title>
<updated>2010-05-15T11:16:34Z</updated>
<author>
<name>Jan Blunck</name>
<email>jblunck@suse.de</email>
</author>
<published>2010-04-12T23:44:08Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=684bdc7ff95e0c1d4b0bcf236491840b55a54189'/>
<id>urn:sha1:684bdc7ff95e0c1d4b0bcf236491840b55a54189</id>
<content type='text'>
I spotted the missing kfree() while removing the BKL.

[akpm@linux-foundation.org: avoid multiple returns so it doesn't happen again]
Signed-off-by: Jan Blunck &lt;jblunck@suse.de&gt;
Cc: Dave Kleikamp &lt;shaggy@austin.ibm.com&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
</content>
</entry>
<entry>
<title>fs/sysv: dereferencing ERR_PTR()</title>
<updated>2010-05-15T11:16:33Z</updated>
<author>
<name>Dan Carpenter</name>
<email>error27@gmail.com</email>
</author>
<published>2010-04-21T10:30:32Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=404e781249f003a37a140756fc4aeae463dcb217'/>
<id>urn:sha1:404e781249f003a37a140756fc4aeae463dcb217</id>
<content type='text'>
I moved the dir_put_page() inside the if condition so we don't dereference
"page", if it's an ERR_PTR().

Signed-off-by: Dan Carpenter &lt;error27@gmail.com&gt;
Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
</content>
</entry>
<entry>
<title>Fix double-free in logfs</title>
<updated>2010-05-15T11:16:33Z</updated>
<author>
<name>Al Viro</name>
<email>viro@zeniv.linux.org.uk</email>
</author>
<published>2010-04-29T00:57:02Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=265624495f5acf6077f8f8d264f8170573d8d752'/>
<id>urn:sha1:265624495f5acf6077f8f8d264f8170573d8d752</id>
<content type='text'>
iput() is needed *until* we'd done successful d_alloc_root()

Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
</content>
</entry>
<entry>
<title>Fix the regression created by "set S_DEAD on unlink()..." commit</title>
<updated>2010-05-15T11:16:33Z</updated>
<author>
<name>Al Viro</name>
<email>viro@zeniv.linux.org.uk</email>
</author>
<published>2010-04-30T21:17:09Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=d83c49f3e36cecd2e8823b6c48ffba083b8a5704'/>
<id>urn:sha1:d83c49f3e36cecd2e8823b6c48ffba083b8a5704</id>
<content type='text'>
1) i_flags simply doesn't work for mount/unlink race prevention;
we may have many links to file and rm on one of those obviously
shouldn't prevent bind on top of another later on.  To fix it
right way we need to mark _dentry_ as unsuitable for mounting
upon; new flag (DCACHE_CANT_MOUNT) is protected by d_flags and
i_mutex on the inode in question.  Set it (with dont_mount(dentry))
in unlink/rmdir/etc., check (with cant_mount(dentry)) in places
in namespace.c that used to check for S_DEAD.  Setting S_DEAD
is still needed in places where we used to set it (for directories
getting killed), since we rely on it for readdir/rmdir race
prevention.

2) rename()/mount() protection has another bogosity - we unhash
the target before we'd checked that it's not a mountpoint.  Fixed.

3) ancient bogosity in pivot_root() - we locked i_mutex on the
right directory, but checked S_DEAD on the different (and wrong)
one.  Noticed and fixed.

Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
</content>
</entry>
<entry>
<title>Merge branch 'for-linus' of git://git.infradead.org/users/eparis/notify</title>
<updated>2010-05-14T18:49:42Z</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2010-05-14T18:49:42Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=4fc4c3ce0dc1096cbd0daa3fe8f6905cbec2b87e'/>
<id>urn:sha1:4fc4c3ce0dc1096cbd0daa3fe8f6905cbec2b87e</id>
<content type='text'>
* 'for-linus' of git://git.infradead.org/users/eparis/notify:
  inotify: don't leak user struct on inotify release
  inotify: race use after free/double free in inotify inode marks
  inotify: clean up the inotify_add_watch out path
  Inotify: undefined reference to `anon_inode_getfd'

Manual merge to remove duplicate "select ANON_INODES" from Kconfig file
</content>
</entry>
<entry>
<title>inotify: don't leak user struct on inotify release</title>
<updated>2010-05-14T15:53:36Z</updated>
<author>
<name>Pavel Emelyanov</name>
<email>xemul@openvz.org</email>
</author>
<published>2010-05-12T22:34:07Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=b3b38d842fa367d862b83e7670af4e0fd6a80fc0'/>
<id>urn:sha1:b3b38d842fa367d862b83e7670af4e0fd6a80fc0</id>
<content type='text'>
inotify_new_group() receives a get_uid-ed user_struct and saves the
reference on group-&gt;inotify_data.user.  The problem is that free_uid() is
never called on it.

Issue seem to be introduced by 63c882a0 (inotify: reimplement inotify
using fsnotify) after 2.6.30.

Signed-off-by: Pavel Emelyanov &lt;xemul@openvz.org&gt;
Eric Paris &lt;eparis@parisplace.org&gt;
Cc: &lt;stable@kernel.org&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Eric Paris &lt;eparis@redhat.com&gt;
</content>
</entry>
<entry>
<title>inotify: race use after free/double free in inotify inode marks</title>
<updated>2010-05-14T15:52:57Z</updated>
<author>
<name>Eric Paris</name>
<email>eparis@redhat.com</email>
</author>
<published>2010-05-11T21:17:40Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=e08733446e72b983fed850fc5d8bd21b386feb29'/>
<id>urn:sha1:e08733446e72b983fed850fc5d8bd21b386feb29</id>
<content type='text'>
There is a race in the inotify add/rm watch code.  A task can find and
remove a mark which doesn't have all of it's references.  This can
result in a use after free/double free situation.

Task A					Task B
------------				-----------
inotify_new_watch()
 allocate a mark (refcnt == 1)
 add it to the idr
					inotify_rm_watch()
					 inotify_remove_from_idr()
					  fsnotify_put_mark()
					      refcnt hits 0, free
 take reference because we are on idr
 [at this point it is a use after free]
 [time goes on]
 refcnt may hit 0 again, double free

The fix is to take the reference BEFORE the object can be found in the
idr.

Signed-off-by: Eric Paris &lt;eparis@redhat.com&gt;
Cc: &lt;stable@kernel.org&gt;
</content>
</entry>
</feed>
