[1/2] winweesd.drv: Make sure esd_all_info is always initialized and freed when needed.
Francois Gouget
fgouget at codeweavers.com
Tue Jun 16 12:15:45 CDT 2009
---
dlls/wineesd.drv/audio.c | 7 +++++--
1 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/dlls/wineesd.drv/audio.c b/dlls/wineesd.drv/audio.c
index 3a3bce5..2694a73 100644
--- a/dlls/wineesd.drv/audio.c
+++ b/dlls/wineesd.drv/audio.c
@@ -1417,6 +1417,7 @@ static esd_player_info_t* wod_get_player(WINE_WAVEOUT* wwo, esd_info_t** esd_all
if (wwo->esd_fd < 0)
{
WARN("esd_open_sound() failed (%d)\n", errno);
+ *esd_all_info = NULL;
return NULL;
}
}
@@ -1469,7 +1470,8 @@ static DWORD wodGetVolume(WORD wDevID, LPDWORD lpdwVol)
else
ret = MMSYSERR_ERROR;
- esd_free_all_info(esd_all_info);
+ if (esd_all_info)
+ esd_free_all_info(esd_all_info);
return ret;
}
@@ -1494,7 +1496,8 @@ static DWORD wodSetVolume(WORD wDevID, DWORD dwParam)
esd_info_t* esd_all_info;
/* wod_get_player sets the stream_id as a side effect */
wod_get_player(wwo, &esd_all_info);
- esd_free_all_info(esd_all_info);
+ if (esd_all_info)
+ esd_free_all_info(esd_all_info);
}
if (!wwo->stream_id)
return MMSYSERR_ERROR;
--
1.6.3.1
More information about the wine-patches
mailing list