diff --git a/README.md b/README.md index 30d83b28..b5331c1a 100644 --- a/README.md +++ b/README.md @@ -37,9 +37,10 @@ Wine. All those differences are also documented on the Included bug fixes and improvements =================================== -**Bugfixes and features included in the next upcoming release [2]:** +**Bugfixes and features included in the next upcoming release [3]:** * Fix condition mask handling in RtlVerifyVersionInfo ([Wine Bug #36143](https://bugs.winehq.org/show_bug.cgi?id=36143)) +* Fix possible segfault in pulse_rd_loop of PulseAudio backend * Set last error when GetRawInputDeviceList fails ([Wine Bug #37667](https://bugs.winehq.org/show_bug.cgi?id=37667)) diff --git a/debian/changelog b/debian/changelog index ee741a71..ba70fc56 100644 --- a/debian/changelog +++ b/debian/changelog @@ -2,6 +2,7 @@ wine-compholio (1.7.33) UNRELEASED; urgency=low * Added additional tests for VerifyVersionInfoA. * Added patch to fix condition handling in RtlVerifyVersionInfo. * Added patch to set last error when GetRawInputDeviceList fails. + * Added patch to fix possible segfault in pulse_rd_loop of PulseAudio backend. * Removed patch to fix copy and paste errors in ws2_32 tests (accepted upstream). * Removed patch to fix ordering of IP addresses by metric if two addresses have the same metric (accepted upstream). * Removed patch to reset data->pWintrustData->u.pFile->hFile after closing handle (accepted upstream). diff --git a/patches/Makefile b/patches/Makefile index 9a1e82aa..8ef36aaa 100644 --- a/patches/Makefile +++ b/patches/Makefile @@ -1854,6 +1854,7 @@ winepulse-PulseAudio_Support.ok: $(call APPLY_FILE,winepulse-PulseAudio_Support/0027-winepulse-handle-stream-create-failing-correctly.patch) $(call APPLY_FILE,winepulse-PulseAudio_Support/0028-winepulse-expose-audio-devices-directly-to-programs.patch) $(call APPLY_FILE,winepulse-PulseAudio_Support/0029-winepulse-implement-exclusive-mode.patch) + $(call APPLY_FILE,winepulse-PulseAudio_Support/0030-winepulse-fix-segfault-in-pulse_rd_loop.patch) @( \ echo '+ { "Maarten Lankhorst", "winmm: Load winealsa if winepulse is found.", 1 },'; \ echo '+ { "Maarten Lankhorst", "winepulse: Add initial stub for pulseaudio support.", 1 },'; \ @@ -1884,6 +1885,7 @@ winepulse-PulseAudio_Support.ok: echo '+ { "Mark Harmstone", "winepulse: handle stream create failing correctly.", 1 },'; \ echo '+ { "Mark Harmstone", "winepulse: expose audio devices directly to programs.", 1 },'; \ echo '+ { "Mark Harmstone", "winepulse: implement exclusive mode.", 1 },'; \ + echo '+ { "Mark Harmstone", "winepulse: fix segfault in pulse_rd_loop.", 1 },'; \ ) > winepulse-PulseAudio_Support.ok # Patchset winex11-CandidateWindowPos diff --git a/patches/winepulse-PulseAudio_Support/0030-winepulse-fix-segfault-in-pulse_rd_loop.patch b/patches/winepulse-PulseAudio_Support/0030-winepulse-fix-segfault-in-pulse_rd_loop.patch new file mode 100644 index 00000000..c1e0f626 --- /dev/null +++ b/patches/winepulse-PulseAudio_Support/0030-winepulse-fix-segfault-in-pulse_rd_loop.patch @@ -0,0 +1,24 @@ +From a879d7aa33f4d182d0b60c6991b0eb9e3e0f34fa Mon Sep 17 00:00:00 2001 +From: Mark Harmstone +Date: Tue, 18 Nov 2014 18:39:58 +0000 +Subject: winepulse: fix segfault in pulse_rd_loop + +--- + dlls/winepulse.drv/mmdevdrv.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/dlls/winepulse.drv/mmdevdrv.c b/dlls/winepulse.drv/mmdevdrv.c +index 6134850..37ff7ee 100644 +--- a/dlls/winepulse.drv/mmdevdrv.c ++++ b/dlls/winepulse.drv/mmdevdrv.c +@@ -592,6 +592,7 @@ static void pulse_rd_loop(ACImpl *This, size_t bytes) + size_t src_len, copy, rem = This->capture_period; + if (!(p = (ACPacket*)list_head(&This->packet_free_head))) { + p = (ACPacket*)list_head(&This->packet_filled_head); ++ if (!p) return; + if (!p->discont) { + next = (ACPacket*)p->entry.next; + next->discont = 1; +-- +2.0.4 + diff --git a/patches/winepulse-PulseAudio_Support/definition b/patches/winepulse-PulseAudio_Support/definition index a32d414d..9b6f6216 100644 --- a/patches/winepulse-PulseAudio_Support/definition +++ b/patches/winepulse-PulseAudio_Support/definition @@ -1,3 +1,4 @@ Fixes: [10495] Support for PulseAudio backend for audio Fixes: Allow selection of audio device for PulseAudio backend Fixes: [37042] Implement exclusive mode in PulseAudio backend +Fixes: Fix possible segfault in pulse_rd_loop of PulseAudio backend