| Date | Sun, 06 Dec 2009 15:59:54 -0800 | From | Greg KH <> | Subject | [018/119] sound: rawmidi: fix checking of O_APPEND when opening MIDI device |
| |
2.6.31-stable review patch. If anyone has any objections, please let us know.
------------------ From: Clemens Ladisch <clemens@ladisch.de>
commit 16fb109644b5644e42ececeff644514de6f4bd03 upstream.
Commit 9a1b64caac82aa02cb74587ffc798e6f42c6170a in 2.6.30 dropped the check that a substream must already have been opened with O_APPEND to be able to open it a second time.
This would make it possible for a substream to be switched to append mode, which would mean that non-atomic writes would fail unexpectedly.
Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
--- sound/core/rawmidi.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
--- a/sound/core/rawmidi.c +++ b/sound/core/rawmidi.c @@ -248,7 +248,8 @@ static int assign_substream(struct snd_r list_for_each_entry(substream, &s->substreams, list) { if (substream->opened) { if (stream == SNDRV_RAWMIDI_STREAM_INPUT || - !(mode & SNDRV_RAWMIDI_LFLG_APPEND)) + !(mode & SNDRV_RAWMIDI_LFLG_APPEND) || + !substream->append) continue; } if (subdevice < 0 || subdevice == substream->number) {
|