summaryrefslogtreecommitdiffstats
path: root/Gui
diff options
context:
space:
mode:
authorreimar <reimar@b3059339-0415-0410-9bf9-f77b7e298cf2>2006-09-23 14:36:25 +0000
committerreimar <reimar@b3059339-0415-0410-9bf9-f77b7e298cf2>2006-09-23 14:36:25 +0000
commit4137480167846104405aac68d5453ac8d30c93cb (patch)
tree9de53169427789954b600376ad6a412f985dcba5 /Gui
parentc466bd5d89507d81dba945c3240e75d88c5444c4 (diff)
downloadmpv-4137480167846104405aac68d5453ac8d30c93cb.tar.bz2
mpv-4137480167846104405aac68d5453ac8d30c93cb.tar.xz
Avoid buffer overflow: memory has do be allocated accordingly when overwriting a string!
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@19954 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'Gui')
-rw-r--r--Gui/win32/preferences.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/Gui/win32/preferences.c b/Gui/win32/preferences.c
index b338e9538d..0063a6ac13 100644
--- a/Gui/win32/preferences.c
+++ b/Gui/win32/preferences.c
@@ -562,14 +562,21 @@ static LRESULT CALLBACK PrefsWndProc(HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM
return 0;
case ID_APPLY:
{
+ int strl;
if(guiIntfStruct.Playing) guiGetEvent(guiCEvent, (void *)guiSetStop);
/* Set the video driver */
- SendMessage(vo_driver, CB_GETLBTEXT, (WPARAM)SendMessage(vo_driver, CB_GETCURSEL, 0, 0),
+ gfree(video_driver_list[0]);
+ strl = SendMessage(vo_driver, CB_GETCURSEL, 0, 0);
+ video_driver_list[0] = malloc(strl);
+ SendMessage(vo_driver, CB_GETLBTEXT, (WPARAM)strl,
(LPARAM)video_driver_list[0]);
/* Set the audio driver */
- SendMessage(ao_driver, CB_GETLBTEXT, (WPARAM)SendMessage(ao_driver, CB_GETCURSEL, 0, 0),
+ gfree(audio_driver_list[0]);
+ strl = SendMessage(ao_driver, CB_GETCURSEL, 0, 0);
+ audio_driver_list[0] = malloc(strl);
+ SendMessage(ao_driver, CB_GETLBTEXT, (WPARAM)strl,
(LPARAM)audio_driver_list[0]);
/* Set the priority level */