<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/lib, branch v3.0.37</title>
<subtitle>Linux kernel source tree</subtitle>
<id>https://git.amat.us/linux/atom/lib?h=v3.0.37</id>
<link rel='self' href='https://git.amat.us/linux/atom/lib?h=v3.0.37'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/'/>
<updated>2012-06-17T18:23:10Z</updated>
<entry>
<title>btree: fix tree corruption in btree_get_prev()</title>
<updated>2012-06-17T18:23:10Z</updated>
<author>
<name>Roland Dreier</name>
<email>roland@purestorage.com</email>
</author>
<published>2012-06-07T21:21:13Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=29684ecb7a675061933fb19531407fa9f9971ab4'/>
<id>urn:sha1:29684ecb7a675061933fb19531407fa9f9971ab4</id>
<content type='text'>
commit cbf8ae32f66a9ceb8907ad9e16663c2a29e48990 upstream.

The memory the parameter __key points to is used as an iterator in
btree_get_prev(), so if we save off a bkey() pointer in retry_key and
then assign that to __key, we'll end up corrupting the btree internals
when we do eg

	longcpy(__key, bkey(geo, node, i), geo-&gt;keylen);

to return the key value.  What we should do instead is use longcpy() to
copy the key value that retry_key points to __key.

This can cause a btree to get corrupted by seemingly read-only
operations such as btree_for_each_safe.

[akpm@linux-foundation.org: avoid the double longcpy()]
Signed-off-by: Roland Dreier &lt;roland@purestorage.com&gt;
Acked-by: Joern Engel &lt;joern@logfs.org&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>uevent: send events in correct order according to seqnum (v3)</title>
<updated>2012-04-02T16:27:09Z</updated>
<author>
<name>Andrew Vagin</name>
<email>avagin@openvz.org</email>
</author>
<published>2012-03-07T10:49:56Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=377c2f4aa985f937d77a6bb9b938b4deda2dc282'/>
<id>urn:sha1:377c2f4aa985f937d77a6bb9b938b4deda2dc282</id>
<content type='text'>
commit 7b60a18da393ed70db043a777fd9e6d5363077c4 upstream.

The queue handling in the udev daemon assumes that the events are
ordered.

Before this patch uevent_seqnum is incremented under sequence_lock,
than an event is send uner uevent_sock_mutex. I want to say that code
contained a window between incrementing seqnum and sending an event.

This patch locks uevent_sock_mutex before incrementing uevent_seqnum.

v2: delete sequence_lock, uevent_seqnum is protected by uevent_sock_mutex
v3: unlock the mutex before the goto exit

Thanks for Kay for the comments.

Signed-off-by: Andrew Vagin &lt;avagin@openvz.org&gt;
Tested-By: Kay Sievers &lt;kay.sievers@vrfy.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>netlink: validate NLA_MSECS length</title>
<updated>2011-11-11T17:37:12Z</updated>
<author>
<name>Johannes Berg</name>
<email>johannes.berg@intel.com</email>
</author>
<published>2011-11-03T00:07:32Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=6167ded5698377fca7830c22be0ba976f91f2434'/>
<id>urn:sha1:6167ded5698377fca7830c22be0ba976f91f2434</id>
<content type='text'>
commit c30bc94758ae2a38a5eb31767c1985c0aae0950b upstream.

L2TP for example uses NLA_MSECS like this:
policy:
        [L2TP_ATTR_RECV_TIMEOUT]        = { .type = NLA_MSECS, },
code:
        if (info-&gt;attrs[L2TP_ATTR_RECV_TIMEOUT])
                cfg.reorder_timeout = nla_get_msecs(info-&gt;attrs[L2TP_ATTR_RECV_TIMEOUT]);

As nla_get_msecs() is essentially nla_get_u64() plus the
conversion to a HZ-based value, this will not properly
reject attributes from userspace that aren't long enough
and might overrun the message.

Add NLA_MSECS to the attribute minlen array to check the
size properly.

Cc: Thomas Graf &lt;tgraf@suug.ch&gt;
Signed-off-by: Johannes Berg &lt;johannes.berg@intel.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>kobj_uevent: Ignore if some listeners cannot handle message</title>
<updated>2011-11-11T17:35:46Z</updated>
<author>
<name>Milan Broz</name>
<email>mbroz@redhat.com</email>
</author>
<published>2011-08-22T13:51:34Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=7b59e3e29e1a28ad40892dd2115175e2702f1153'/>
<id>urn:sha1:7b59e3e29e1a28ad40892dd2115175e2702f1153</id>
<content type='text'>
commit ebf4127cd677e9781b450e44dfaaa1cc595efcaa upstream.

kobject_uevent() uses a multicast socket and should ignore
if one of listeners cannot handle messages or nobody is
listening at all.

Easily reproducible when a process in system is cloned
with CLONE_NEWNET flag.

(See also http://article.gmane.org/gmane.linux.kernel.device-mapper.dm-crypt/5256)

Signed-off-by: Milan Broz &lt;mbroz@redhat.com&gt;
Acked-by: Kay Sievers &lt;kay.sievers@vrfy.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>XZ: Fix incorrect XZ_BUF_ERROR</title>
<updated>2011-10-03T18:40:37Z</updated>
<author>
<name>Lasse Collin</name>
<email>lasse.collin@tukaani.org</email>
</author>
<published>2011-09-21T14:30:50Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=ac82a9c88d9e0db9f33ed03517c3e3925ceae634'/>
<id>urn:sha1:ac82a9c88d9e0db9f33ed03517c3e3925ceae634</id>
<content type='text'>
commit 9c1f8594df4814ebfd6822ca3c9444fb3445888d upstream.

xz_dec_run() could incorrectly return XZ_BUF_ERROR if all of the
following was true:

 - The caller knows how many bytes of output to expect and only provides
   that much output space.

 - When the last output bytes are decoded, the caller-provided input
   buffer ends right before the LZMA2 end of payload marker.  So LZMA2
   won't provide more output anymore, but it won't know it yet and thus
   won't return XZ_STREAM_END yet.

 - A BCJ filter is in use and it hasn't left any unfiltered bytes in the
   temp buffer.  This can happen with any BCJ filter, but in practice
   it's more likely with filters other than the x86 BCJ.

This fixes &lt;https://bugzilla.redhat.com/show_bug.cgi?id=735408&gt; where
Squashfs thinks that a valid file system is corrupt.

This also fixes a similar bug in single-call mode where the uncompressed
size of a block using BCJ + LZMA2 was 0 bytes and caller provided no
output space.  Many empty .xz files don't contain any blocks and thus
don't trigger this bug.

This also tweaks a closely related detail: xz_dec_bcj_run() could call
xz_dec_lzma2_run() to decode into temp buffer when it was known to be
useless.  This was harmless although it wasted a minuscule number of CPU
cycles.

Signed-off-by: Lasse Collin &lt;lasse.collin@tukaani.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>crypto: Move md5_transform to lib/md5.c</title>
<updated>2011-08-16T01:31:35Z</updated>
<author>
<name>David S. Miller</name>
<email>davem@davemloft.net</email>
</author>
<published>2011-08-04T02:45:10Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=2468b895fc7dcbc436cb02f0707ab8d7cb2f0aa7'/>
<id>urn:sha1:2468b895fc7dcbc436cb02f0707ab8d7cb2f0aa7</id>
<content type='text'>
We are going to use this for TCP/IP sequence number and fragment ID
generation.

Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;
</content>
</entry>
<entry>
<title>XZ: Fix missing &lt;linux/kernel.h&gt; include</title>
<updated>2011-08-05T04:58:38Z</updated>
<author>
<name>Lasse Collin</name>
<email>lasse.collin@tukaani.org</email>
</author>
<published>2011-07-24T16:54:25Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=947204a724d45083033b6706dad40d47022e5d70'/>
<id>urn:sha1:947204a724d45083033b6706dad40d47022e5d70</id>
<content type='text'>
commit 81d67439855a7f928d90965d832aa4f2fb677342 upstream.

&lt;linux/kernel.h&gt; is needed for min_t. The old version
happened to work on x86 because &lt;asm/unaligned.h&gt;
indirectly includes &lt;linux/kernel.h&gt;, but it didn't
work on ARM.

&lt;linux/kernel.h&gt; includes &lt;asm/byteorder.h&gt; so it's
not necessary to include it explicitly anymore.

Signed-off-by: Lasse Collin &lt;lasse.collin@tukaani.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
</entry>
<entry>
<title>Merge branches 'core-urgent-for-linus', 'perf-urgent-for-linus' and 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip</title>
<updated>2011-07-07T20:17:45Z</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2011-07-07T20:17:45Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=27a3b735b70651f28db03e5f92775a40661ba7a6'/>
<id>urn:sha1:27a3b735b70651f28db03e5f92775a40661ba7a6</id>
<content type='text'>
* 'core-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
  debugobjects: Fix boot crash when kmemleak and debugobjects enabled

* 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
  jump_label: Fix jump_label update for modules
  oprofile, x86: Fix race in nmi handler while starting counters

* 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
  sched: Disable (revert) SCHED_LOAD_SCALE increase
  sched, cgroups: Fix MIN_SHARES on 64-bit boxen
</content>
</entry>
<entry>
<title>debugobjects: Fix boot crash when kmemleak and debugobjects enabled</title>
<updated>2011-06-20T12:38:43Z</updated>
<author>
<name>Marcin Slusarz</name>
<email>marcin.slusarz@gmail.com</email>
</author>
<published>2011-05-28T11:23:42Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=161b6ae0e067e421b20bb35caf66bdb405c929ac'/>
<id>urn:sha1:161b6ae0e067e421b20bb35caf66bdb405c929ac</id>
<content type='text'>
Order of initialization look like this:
...
debugobjects
kmemleak
...(lots of other subsystems)...
workqueues (through early initcall)
...

debugobjects use schedule_work for batch freeing of its data and kmemleak
heavily use debugobjects, so when it comes to freeing and workqueues were
not initialized yet, kernel crashes:

BUG: unable to handle kernel NULL pointer dereference at           (null)
IP: [&lt;ffffffff810854d1&gt;] __queue_work+0x29/0x41a
 [&lt;ffffffff81085910&gt;] queue_work_on+0x16/0x1d
 [&lt;ffffffff81085abc&gt;] queue_work+0x29/0x55
 [&lt;ffffffff81085afb&gt;] schedule_work+0x13/0x15
 [&lt;ffffffff81242de1&gt;] free_object+0x90/0x95
 [&lt;ffffffff81242f6d&gt;] debug_check_no_obj_freed+0x187/0x1d3
 [&lt;ffffffff814b6504&gt;] ? _raw_spin_unlock_irqrestore+0x30/0x4d
 [&lt;ffffffff8110bd14&gt;] ? free_object_rcu+0x68/0x6d
 [&lt;ffffffff8110890c&gt;] kmem_cache_free+0x64/0x12c
 [&lt;ffffffff8110bd14&gt;] free_object_rcu+0x68/0x6d
 [&lt;ffffffff810b58bc&gt;] __rcu_process_callbacks+0x1b6/0x2d9
...

because system_wq is NULL.

Fix it by checking if workqueues susbystem was initialized before using.

Signed-off-by: Marcin Slusarz &lt;marcin.slusarz@gmail.com&gt;
Cc: Catalin Marinas &lt;catalin.marinas@arm.com&gt;
Cc: Tejun Heo &lt;tj@kernel.org&gt;
Cc: Dipankar Sarma &lt;dipankar@in.ibm.com&gt;
Cc: Paul E. McKenney &lt;paulmck@linux.vnet.ibm.com&gt;
Cc: stable@kernel.org
Link: http://lkml.kernel.org/r/20110528112342.GA3068@joi.lan
Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&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>2011-06-16T17:21:59Z</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2011-06-16T17:21:59Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=8dac6bee32425dd5145b40fa2307648cb7fb4d4a'/>
<id>urn:sha1:8dac6bee32425dd5145b40fa2307648cb7fb4d4a</id>
<content type='text'>
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6:
  AFS: Use i_generation not i_version for the vnode uniquifier
  AFS: Set s_id in the superblock to the volume name
  vfs: Fix data corruption after failed write in __block_write_begin()
  afs: afs_fill_page reads too much, or wrong data
  VFS: Fix vfsmount overput on simultaneous automount
  fix wrong iput on d_inode introduced by e6bc45d65d
  Delay struct net freeing while there's a sysfs instance refering to it
  afs: fix sget() races, close leak on umount
  ubifs: fix sget races
  ubifs: split allocation of ubifs_info into a separate function
  fix leak in proc_set_super()
</content>
</entry>
</feed>
