<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/fs/hfsplus/catalog.c, branch linux-3.8.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.8.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.8.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2012-09-21T10:13:12Z</updated>
<entry>
<title>userns: Convert hfsplus to use kuid and kgid where appropriate</title>
<updated>2012-09-21T10:13:12Z</updated>
<author>
<name>Eric W. Biederman</name>
</author>
<published>2012-02-08T00:27:17Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=16525e3f146fbba1ae43740c7d3895d4f396a768'/>
<id>urn:sha1:16525e3f146fbba1ae43740c7d3895d4f396a768</id>
<content type='text'>
Signed-off-by: Eric W. Biederman &lt;ebiederm@xmission.com&gt;
</content>
</entry>
<entry>
<title>hfsplus: Fix potential buffer overflows</title>
<updated>2012-05-05T00:11:24Z</updated>
<author>
<name>Greg Kroah-Hartman</name>
</author>
<published>2012-05-04T19:09:39Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=6f24f892871acc47b40dd594c63606a17c714f77'/>
<id>urn:sha1:6f24f892871acc47b40dd594c63606a17c714f77</id>
<content type='text'>
Commit ec81aecb2966 ("hfs: fix a potential buffer overflow") fixed a few
potential buffer overflows in the hfs filesystem.  But as Timo Warns
pointed out, these changes also need to be made on the hfsplus
filesystem as well.

Reported-by: Timo Warns &lt;warns@pre-sense.de&gt;
Acked-by: WANG Cong &lt;amwang@redhat.com&gt;
Cc: Alexey Khoroshilov &lt;khoroshilov@ispras.ru&gt;
Cc: Miklos Szeredi &lt;mszeredi@suse.cz&gt;
Cc: Sage Weil &lt;sage@newdream.net&gt;
Cc: Eugene Teo &lt;eteo@redhat.com&gt;
Cc: Roman Zippel &lt;zippel@linux-m68k.org&gt;
Cc: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
Cc: Christoph Hellwig &lt;hch@lst.de&gt;
Cc: Alexey Dobriyan &lt;adobriyan@gmail.com&gt;
Cc: Dave Anderson &lt;anderson@redhat.com&gt;
Cc: stable &lt;stable@vger.kernel.org&gt;
Cc: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>hfsplus: add error checking for hfs_find_init()</title>
<updated>2011-07-07T15:45:46Z</updated>
<author>
<name>Alexey Khoroshilov</name>
</author>
<published>2011-07-05T22:29:59Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=5bd9d99d107c56ff7b35a29e930d85f91a07b2fd'/>
<id>urn:sha1:5bd9d99d107c56ff7b35a29e930d85f91a07b2fd</id>
<content type='text'>
hfs_find_init() may fail with ENOMEM, but there are places, where
the returned value is not checked. The consequences can be very
unpleasant, e.g. kfree uninitialized pointer and
inappropriate mutex unlocking.

The patch adds checks for errors in hfs_find_init().

Found by Linux Driver Verification project (linuxtesting.org).

Signed-off-by: Alexey Khoroshilov &lt;khoroshilov@ispras.ru&gt;
Signed-off-by: Christoph Hellwig &lt;hch@lst.de&gt;
</content>
</entry>
<entry>
<title>hfsplus: over 80 character lines clean-up</title>
<updated>2010-12-16T17:08:45Z</updated>
<author>
<name>Anton Salikhmetov</name>
</author>
<published>2010-12-16T16:08:38Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=2753cc281c9a0e8a0a45ee2b8110866a9fe63bdd'/>
<id>urn:sha1:2753cc281c9a0e8a0a45ee2b8110866a9fe63bdd</id>
<content type='text'>
Match coding style line length limitation where checkpatch.pl
reported over-80-character-line warnings.

Signed-off-by: Anton Salikhmetov &lt;alexo@tuxera.com&gt;
Signed-off-by: Christoph Hellwig &lt;hch@tuxera.com&gt;
</content>
</entry>
<entry>
<title>hfsplus: optimize fsync</title>
<updated>2010-11-23T13:38:15Z</updated>
<author>
<name>Christoph Hellwig</name>
</author>
<published>2010-11-23T13:38:15Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=e34947056076ca5467ee8256d2d9cbc594a79b37'/>
<id>urn:sha1:e34947056076ca5467ee8256d2d9cbc594a79b37</id>
<content type='text'>
Avoid doing unessecary work in fsync.  Do nothing unless the inode
was marked dirty, and only write the various metadata inodes out if
they contain any dirty state from this inode.  This is archived by
adding three new dirty bits to the hfsplus-specific inode which are
set in the correct places.

Signed-off-by: Christoph Hellwig &lt;hch@tuxera.com&gt;
</content>
</entry>
<entry>
<title>hfsplus: create correct initial catalog entries for device files</title>
<updated>2010-10-14T13:54:39Z</updated>
<author>
<name>Christoph Hellwig</name>
</author>
<published>2010-10-14T13:54:39Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=90e616905a423126805186cb5754e10a704b30c8'/>
<id>urn:sha1:90e616905a423126805186cb5754e10a704b30c8</id>
<content type='text'>
Make sure the initial insertation of the catalog entry already contains
the device number by calling init_special_inode early and setting writing
out the dev field of the on-disk permission structure.  The latter is
facilitated by sharing the almost identical hfsplus_set_perms helpers
between initial catalog entry creating and -&gt;write_inode.

Unless we crashed just after mknod this bug was harmless as the inode
is marked dirty at the end of hfsplus_mknod, and hfsplus_write_inode
will update the catalog entry to contain the correct value.

Signed-off-by: Christoph Hellwig &lt;hch@tuxera.com&gt;
</content>
</entry>
<entry>
<title>hfsplus: remove superflous rootflags field in hfsplus_inode_info</title>
<updated>2010-10-14T13:54:33Z</updated>
<author>
<name>Christoph Hellwig</name>
</author>
<published>2010-10-14T13:54:33Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=722c55d13e7296cc62ed8a38f926a915ff32e4ea'/>
<id>urn:sha1:722c55d13e7296cc62ed8a38f926a915ff32e4ea</id>
<content type='text'>
The rootflags field in hfsplus_inode_info only caches the immutable and
append-only flags in the VFS inode, so we can easily get rid of it.

Signed-off-by: Christoph Hellwig &lt;hch@tuxera.com&gt;
</content>
</entry>
<entry>
<title>hfsplus: fix link corruption</title>
<updated>2010-10-14T13:54:28Z</updated>
<author>
<name>Christoph Hellwig</name>
</author>
<published>2010-10-14T13:54:28Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=f6089ff87d309a8ddb7b0d4dd92a570f1b0f689b'/>
<id>urn:sha1:f6089ff87d309a8ddb7b0d4dd92a570f1b0f689b</id>
<content type='text'>
HFS implements hardlink by using indirect catalog entries that refer to a hidden
directly.  The link target is cached in the dev field in the HFS+ specific
inode, which is also used for the device number for device files, and inside
for passing the nlink value of the indirect node from hfsplus_cat_write_inode
to a helper function.  Now if we happen to write out the indirect node while
hfsplus_link is creating the catalog entry we'll get a link pointing to the
linkid of the current nlink value.  This can easily be reproduced by a large
enough loop of local git-clone operations.

Stop abusing the dev field in the HFS+ inode for short term storage by
refactoring the way the permission structure in the catalog entry is
set up, and rename the dev field to linkid to avoid any confusion.

While we're at it also prevent creating hard links to special files, as
the HFS+ dev and linkid share the same space in the on-disk structure.

Signed-off-by: Christoph Hellwig &lt;hch@tuxera.com&gt;
</content>
</entry>
<entry>
<title>hfsplus: fix HFSPLUS_I calling convention</title>
<updated>2010-10-01T03:43:31Z</updated>
<author>
<name>Christoph Hellwig</name>
</author>
<published>2010-10-01T03:43:31Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=6af502de224c3742936d54eee7e3690c09822934'/>
<id>urn:sha1:6af502de224c3742936d54eee7e3690c09822934</id>
<content type='text'>
HFSPLUS_I doesn't return a pointer to the hfsplus-specific inode
information like all other FOO_I macros, but dereference the pointer in a way
that made it look like a direct struct derefence.  This only works as long
as the HFSPLUS_I macro is used directly and prevents us from keepig a local
hfsplus_inode_info pointer.  Fix the calling convention and introduce a local
hip variable in all functions that use it constantly.

Signed-off-by: Christoph Hellwig &lt;hch@tuxera.com&gt;
</content>
</entry>
<entry>
<title>hfsplus: fix HFSPLUS_SB calling convention</title>
<updated>2010-10-01T03:42:59Z</updated>
<author>
<name>Christoph Hellwig</name>
</author>
<published>2010-10-01T03:42:59Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=dd73a01a30d729e8fa6f829c4582650e258e36f9'/>
<id>urn:sha1:dd73a01a30d729e8fa6f829c4582650e258e36f9</id>
<content type='text'>
HFSPLUS_SB doesn't return a pointer to the hfsplus-specific superblock
information like all other FOO_SB macros, but dereference the pointer in a way
that made it look like a direct struct derefence.  This only works as long
as the HFSPLUS_SB macro is used directly and prevents us from keepig a local
hfsplus_sb_info pointer.  Fix the calling convention and introduce a local
sbi variable in all functions that use it constantly.

Signed-off-by: Christoph Hellwig &lt;hch@tuxera.com&gt;
</content>
</entry>
</feed>
