Sweden-Number/dlls/win32u
Rémi Bernon 39fea6cd1e win32u: Guard font unused_entry against race condition.
There is a race condition otherwise between release_gdi_font and
find_cached_gdi_font, leading to invalid memory access:

One thread calling release_gdi_font may decrement refcount to 0,
then try to enter font_lock. At the same time, another thread may be
calling find_cached_gdi_font through select_font, holding the font_lock.

This second thread would find refcount set to 0, and then try to remove
unused_entry from its list, although it hasn't been added yet to the
unused list.

Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-19 18:31:38 +01:00
..
dibdrv include: Don't include wine/port.h in Unix libraries. 2021-11-03 21:06:48 +01:00
tests win32u: Move NtUserRemoveProp implementation from user32. 2021-11-08 17:32:52 +01:00
Makefile.in win32u: Move NtUserAttachThreadInput implementation from user32. 2021-11-16 17:44:42 +01:00
bitblt.c win32u: Move ntgdi implementation from gdi32. 2021-10-07 18:03:11 +02:00
bitmap.c win32u: Move ntgdi implementation from gdi32. 2021-10-07 18:03:11 +02:00
brush.c win32u: Move ntgdi implementation from gdi32. 2021-10-07 18:03:11 +02:00
clipboard.c win32u: Move NtUserGetOpenClipboardWindow implementation from user32. 2021-11-16 17:44:42 +01:00
clipping.c win32u: Move ntgdi implementation from gdi32. 2021-10-07 18:03:11 +02:00
dc.c win32u: Move ntgdi implementation from gdi32. 2021-10-07 18:03:11 +02:00
dib.c win32u: Move ntgdi implementation from gdi32. 2021-10-07 18:03:11 +02:00
driver.c win32u: Move NtUserScrollDC implementation from user32. 2021-11-17 15:27:03 +01:00
emfdrv.c win32u: Remove EMFDRV_StretchDIBits and EMFDRV_SetDIBitsToDevice. 2021-11-08 10:49:26 +01:00
font.c win32u: Guard font unused_entry against race condition. 2021-11-19 18:31:38 +01:00
freetype.c include: Don't include wine/port.h in Unix libraries. 2021-11-03 21:06:48 +01:00
gdiobj.c win32u: Move NtUserScrollDC implementation from user32. 2021-11-17 15:27:03 +01:00
input.c win32u: Move NtUserGetMouseMovePointsEx implementation from user32. 2021-11-17 15:26:57 +01:00
main.c win32u: Move ntgdi implementation from gdi32. 2021-10-07 18:03:11 +02:00
mapping.c win32u: Move ntgdi implementation from gdi32. 2021-10-07 18:03:11 +02:00
ntgdi_private.h win32u: Use user_driver_funcs to pass driver to __wine_set_display_driver. 2021-11-11 18:39:48 +01:00
opentype.c win32u: Use 7-bit ascii for unhandled encodings. 2021-11-08 11:43:04 +01:00
painting.c win32u: Move NtUserScrollDC implementation from user32. 2021-11-17 15:27:03 +01:00
palette.c win32u: Move ntgdi implementation from gdi32. 2021-10-07 18:03:11 +02:00
path.c win32u: Move ntgdi implementation from gdi32. 2021-10-07 18:03:11 +02:00
pen.c win32u: Move ntgdi implementation from gdi32. 2021-10-07 18:03:11 +02:00
printdrv.c win32u: Don't call abort proc in NtGdiStartDoc. 2021-10-18 16:00:44 +02:00
region.c win32u: Don't use free_region in alloc_region. 2021-11-08 17:32:55 +01:00
syscall.c win32u: Move NtUserGetMouseMovePointsEx implementation from user32. 2021-11-17 15:26:57 +01:00
vertical.c win32u: Move ntgdi implementation from gdi32. 2021-10-07 18:03:11 +02:00
vulkan.c win32u: Move ntgdi implementation from gdi32. 2021-10-07 18:03:11 +02:00
win32u.spec win32u: Move NtUserScrollDC implementation from user32. 2021-11-17 15:27:03 +01:00
win32u_private.h win32u: Move NtUserScrollDC implementation from user32. 2021-11-17 15:27:03 +01:00
window.c win32u: Move NtUserRemoveProp implementation from user32. 2021-11-08 17:32:52 +01:00
winstation.c win32u: Move winstation initialization from user32. 2021-10-14 18:59:54 +02:00
wrappers.c win32u: Move NtUserScrollDC implementation from user32. 2021-11-17 15:27:03 +01:00