summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYaniv Kamay <ykamay@redhat.com>2009-07-12 21:12:20 +0300
committerYaniv Kamay <ykamay@redhat.com>2009-09-19 22:22:31 +0300
commit96e43a71aff1c5fcb3506dee3edc89acead708ca (patch)
tree7fe9c574f17d0198bed8cb0291afdaa6b940d670
parent8176dbe8b32625a54583e695799bc8c8b9bc86eb (diff)
spice: vdi audio: fix unsafe access to audio plug
-rw-r--r--qemu/audio/vd_interface_audio.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/qemu/audio/vd_interface_audio.c b/qemu/audio/vd_interface_audio.c
index b8135de3..1de84489 100644
--- a/qemu/audio/vd_interface_audio.c
+++ b/qemu/audio/vd_interface_audio.c
@@ -397,6 +397,7 @@ static int line_out_run(HWVoiceOut *hw)
len = audio_MIN(len, driver.play_avail);
hw->clip(driver.play_now, hw->mix_buf + rpos, len);
if (!(driver.play_avail -= len)) {
+ ASSERT(driver.play_plug);
driver.play_plug->put_frame(driver.play_plug,
driver.play_frame);
driver.play_frame = driver.play_now = NULL;
@@ -436,7 +437,10 @@ static int line_out_ctl(HWVoiceOut *hw, int cmd, ...)
driver.play_now = driver.play_frame = NULL;
driver.play_plug->put_frame(driver.play_plug, frame);
}
- driver.play_plug->stop(driver.play_plug);
+
+ if (driver.play_plug) {
+ driver.play_plug->stop(driver.play_plug);
+ }
}
break;
}