Warning Please read the Ticket HowTo before creating or commenting on a ticket. Failure to do so may cause your ticket to be rejected or result in a slower response.

Opened 23 months ago

Closed 21 months ago

#10809 closed Patch - Bug Fix (Fixed)

[PATCH] libmyth: Prevent an access violation by the ALSA library

Reported by: Lawrence Rust <lvr@…> Owned by: jyavenard
Priority: minor Milestone: unknown
Component: MythTV - Audio Output Version: Master Head
Severity: medium Keywords: ALSA snd_device_name_hint
Cc: Ticket locked: no


In audiooutputalsa.cpp, AudioOutputALSA::GetDevices? calls the ALSA API snd_device_name_hint with a card index of -1 to obtain a list of hints for all cards. Unfortunately, with this API can cause an access violation when the card index is -1. See

Running with valgrind shows that snd_device_name_hint makes reference to previously freed memory when called with a card index of -1.

This patch enumerates the cards using other ALSA APIs, thus avoiding the SEGV.

The access violation is often seen when starting from an empty dbase and attempting to enter the audio setup screen. The bug also applies to fixes/0.25 and 0.24.

Attachments (2)

0001-libmyth-Prevent-an-access-violation-by-the-ALSA-libr.patch (3.1 KB) - added by Lawrence Rust <lvr@…> 23 months ago.
0001-libmyth-Prevent-an-access-violation-by-the-ALSA-libr.2.patch (3.2 KB) - added by Lawrence Rust <lvr@…> 22 months ago.

Download all attachments as: .zip

Change History (6)

Changed 23 months ago by Lawrence Rust <lvr@…>

comment:1 Changed 23 months ago by jyavenard


That specific code is a direct rip of alsautils' aplay -L that lists all the devices

comment:2 Changed 23 months ago by jyavenard

  • Status changed from new to accepted

Changed 22 months ago by Lawrence Rust <lvr@…>

comment:3 Changed 22 months ago by Lawrence Rust <lvr@…>

Updated patch fixes a problem where not all devices were enumerated.

comment:4 Changed 21 months ago by jyavenard

  • Resolution set to Fixed
  • Status changed from accepted to closed

Fixed in c35c00385f781e6736026848d54d75ffa6006219

Thanks for the patch

Add Comment

Modify Ticket

as closed .
The resolution will be deleted. Next status will be 'new'.

E-mail address and user name can be saved in the Preferences.

Note: See TracTickets for help on using tickets.