wineesd.drv: Initialize the stream name before using it!

Francois Gouget fgouget at codeweavers.com
Tue Jun 16 12:15:21 CDT 2009


---
 dlls/wineesd.drv/audio.c |   16 ++++++++++++----
 1 files changed, 12 insertions(+), 4 deletions(-)

diff --git a/dlls/wineesd.drv/audio.c b/dlls/wineesd.drv/audio.c
index 9c1eaa9..3a3bce5 100644
--- a/dlls/wineesd.drv/audio.c
+++ b/dlls/wineesd.drv/audio.c
@@ -1174,11 +1174,15 @@ static DWORD wodOpen(WORD wDevID, LPWAVEOPENDESC lpDesc, DWORD dwFlags)
     out_rate = (int) wwo->waveFormat.Format.nSamplesPerSec;
 	TRACE("esd output format = 0x%08x, rate = %d\n", out_format, out_rate);
 
+    wwo->stream_name = get_stream_name("out", wDevID);
     wwo->stream_fd = esd_play_stream(out_format, out_rate, NULL, wwo->stream_name);
     TRACE("wwo->stream_fd=%d\n", wwo->stream_fd);
-    if(wwo->stream_fd < 0) return MMSYSERR_ALLOCATED;
+    if(wwo->stream_fd < 0)
+    {
+        HeapFree(GetProcessHeap(), 0, wwo->stream_name);
+        return MMSYSERR_ALLOCATED;
+    }
 
-    wwo->stream_name = get_stream_name("out", wDevID);
     wwo->stream_id = 0;
     wwo->dwPlayedTotal = 0;
     wwo->dwWrittenTotal = 0;
@@ -1900,14 +1904,18 @@ static DWORD widOpen(WORD wDevID, LPWAVEOPENDESC lpDesc, DWORD dwFlags)
     in_rate = (int) wwi->waveFormat.Format.nSamplesPerSec;
 	TRACE("esd input format = 0x%08x, rate = %d\n", in_format, in_rate);
 
+    wwi->stream_name = get_stream_name("in", wDevID);
 #ifdef WID_USE_ESDMON
     wwi->stream_fd = esd_monitor_stream(in_format, in_rate, NULL, wwi->stream_name);
 #else
     wwi->stream_fd = esd_record_stream(in_format, in_rate, NULL, wwi->stream_name);
 #endif
     TRACE("wwi->stream_fd=%d\n",wwi->stream_fd);
-    if(wwi->stream_fd < 0) return MMSYSERR_ALLOCATED;
-    wwi->stream_name = get_stream_name("in", wDevID);
+    if(wwi->stream_fd < 0)
+    {
+        HeapFree(GetProcessHeap(), 0, wwi->stream_name);
+        return MMSYSERR_ALLOCATED;
+    }
     wwi->state = WINE_WS_STOPPED;
 
     if (wwi->lpQueuePtr) {
-- 
1.6.3.1




More information about the wine-patches mailing list