Skip to content

Commit 79f8ad0

Browse files
authored
Merge pull request #1373 from n1000/show_message_box_use_after_free
Fix use after free in show_message_box
2 parents c971a98 + 65b8914 commit 79f8ad0

File tree

1 file changed

+7
-7
lines changed

1 file changed

+7
-7
lines changed

src/sdl2/messagebox.rs

+7-7
Original file line numberDiff line numberDiff line change
@@ -232,20 +232,20 @@ where
232232
})
233233
.collect();
234234
let result = unsafe {
235+
let scheme = scheme.map(|scheme| sys::SDL_MessageBoxColorScheme {
236+
colors: scheme.into(),
237+
});
235238
let msg_box_data = sys::SDL_MessageBoxData {
236239
flags: flags.bits(),
237240
window: window.map_or(ptr::null_mut(), |win| win.raw()),
238241
title: title.as_ptr() as *const c_char,
239242
message: message.as_ptr() as *const c_char,
240243
numbuttons: raw_buttons.len() as c_int,
241244
buttons: raw_buttons.as_ptr(),
242-
colorScheme: if let Some(scheme) = scheme {
243-
&sys::SDL_MessageBoxColorScheme {
244-
colors: From::from(scheme),
245-
} as *const _
246-
} else {
247-
ptr::null()
248-
},
245+
colorScheme: scheme
246+
.as_ref()
247+
.map(|p| p as *const _)
248+
.unwrap_or(ptr::null()),
249249
};
250250
sys::SDL_ShowMessageBox(&msg_box_data as *const _, &mut button_id as &mut _)
251251
} == 0;

0 commit comments

Comments
 (0)