Francois Gouget : winweesd.drv: Make sure esd_all_info is always initialized and freed when needed.
Alexandre Julliard
julliard at winehq.org
Wed Jun 17 10:43:23 CDT 2009
Module: wine
Branch: master
Commit: 45311c6724ab5c46e928d90bfb59f3c763acb9ad
URL: http://source.winehq.org/git/wine.git/?a=commit;h=45311c6724ab5c46e928d90bfb59f3c763acb9ad
Author: Francois Gouget <fgouget at codeweavers.com>
Date: Tue Jun 16 19:15:45 2009 +0200
winweesd.drv: Make sure esd_all_info is always initialized and freed when needed.
---
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 4ce176f..f198ace 100644
--- a/dlls/wineesd.drv/audio.c
+++ b/dlls/wineesd.drv/audio.c
@@ -1416,6 +1416,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;
}
}
@@ -1468,7 +1469,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;
}
@@ -1493,7 +1495,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;
More information about the wine-cvs
mailing list