<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/sound/usb/stream.c, branch linux-3.2.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.2.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.2.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2016-04-30T22:05:22Z</updated>
<entry>
<title>ALSA: usb-audio: Fix double-free in error paths after snd_usb_add_audio_stream() call</title>
<updated>2016-04-30T22:05:22Z</updated>
<author>
<name>Vladis Dronov</name>
</author>
<published>2016-03-31T16:05:43Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=7836b6be3ecf04a48076892e8dfa445e5349ad64'/>
<id>urn:sha1:7836b6be3ecf04a48076892e8dfa445e5349ad64</id>
<content type='text'>
commit 836b34a935abc91e13e63053d0a83b24dfb5ea78 upstream.

create_fixed_stream_quirk(), snd_usb_parse_audio_interface() and
create_uaxx_quirk() functions allocate the audioformat object by themselves
and free it upon error before returning. However, once the object is linked
to a stream, it's freed again in snd_usb_audio_pcm_free(), thus it'll be
double-freed, eventually resulting in a memory corruption.

This patch fixes these failures in the error paths by unlinking the audioformat
object before freeing it.

Based on a patch by Takashi Iwai &lt;tiwai@suse.de&gt;

[Note for stable backports:
 this patch requires the commit 902eb7fd1e4a ('ALSA: usb-audio: Minor
 code cleanup in create_fixed_stream_quirk()')]

Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1283358
Reported-by: Ralf Spenneberg &lt;ralf@spenneberg.net&gt;
Signed-off-by: Vladis Dronov &lt;vdronov@redhat.com&gt;
Signed-off-by: Takashi Iwai &lt;tiwai@suse.de&gt;
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</content>
</entry>
<entry>
<title>ALSA: snd-usb: try harder to find USB_DT_CS_ENDPOINT</title>
<updated>2013-05-13T14:02:25Z</updated>
<author>
<name>Daniel Mack</name>
</author>
<published>2013-04-24T17:38:42Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=7b475d0e41f0979b8f8f475ae5fd3e026216e318'/>
<id>urn:sha1:7b475d0e41f0979b8f8f475ae5fd3e026216e318</id>
<content type='text'>
commit ebfc594c02148b6a85c2f178cf167a44a3c3ce10 upstream.

The USB_DT_CS_ENDPOINT class-specific endpoint descriptor is usually
stuffed directly after the standard USB endpoint descriptor, and this is
where the driver currently expects it to be.

There are, however, devices in the wild that have it the other way
around in their descriptor sets, so the USB_DT_CS_ENDPOINT comes
*before* the standard enpoint. Devices known to implement it that way
are "Sennheiser BTD-500" and Plantronics USB headsets.

When the driver can't find the USB_DT_CS_ENDPOINT, it won't be able to
change sample rates, as the bitmask for the validity of this command is
storen in bmAttributes of that descriptor.

Fix this by searching the entire interface instead of just the extra
bytes of the first endpoint, in case the latter fails.

Signed-off-by: Daniel Mack &lt;zonque@gmail.com&gt;
Reported-and-tested-by: Torstein Hegge &lt;hegge@resisty.net&gt;
Reported-and-tested-by: Yves G &lt;alsa-user@vivigatt.com&gt;
Signed-off-by: Takashi Iwai &lt;tiwai@suse.de&gt;
Signed-off-by: Ben Hutchings &lt;ben@decadent.org.uk&gt;
</content>
</entry>
<entry>
<title>ALSA: snd-usb: move code from urb.c to endpoint.c</title>
<updated>2011-09-14T15:07:03Z</updated>
<author>
<name>Daniel Mack</name>
</author>
<published>2011-09-14T10:46:57Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=c731bc96ad641a5fa3d50a87b474652505507282'/>
<id>urn:sha1:c731bc96ad641a5fa3d50a87b474652505507282</id>
<content type='text'>
No code altered at this point, simply preparing for upcoming
refactorizations.

Signed-off-by: Daniel Mack &lt;zonque@gmail.com&gt;
Acked-by: Clemens Ladisch &lt;clemens@ladisch.de&gt;
Signed-off-by: Takashi Iwai &lt;tiwai@suse.de&gt;
</content>
</entry>
<entry>
<title>ALSA: snd-usb: re-order code</title>
<updated>2011-09-14T15:07:02Z</updated>
<author>
<name>Daniel Mack</name>
</author>
<published>2011-09-12T16:54:12Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=e8e8babf561c9560f37b9bd80407ebaf90ad2ca4'/>
<id>urn:sha1:e8e8babf561c9560f37b9bd80407ebaf90ad2ca4</id>
<content type='text'>
Move code from endpoint.c into a new file called stream.c and rename
functions so that their names actually reflect what they're doing.

This way, endpoint.c will be available to functions that hold all the
endpoint logic.

Signed-off-by: Daniel Mack &lt;zonque@gmail.com&gt;
Acked-by: Clemens Ladisch &lt;clemens@ladisch.de&gt;
Signed-off-by: Takashi Iwai &lt;tiwai@suse.de&gt;
</content>
</entry>
</feed>
