diff options
| author | Andre Weissflog <floooh@gmail.com> | 2024-09-17 18:56:34 +0200 |
|---|---|---|
| committer | Andre Weissflog <floooh@gmail.com> | 2024-09-17 18:56:34 +0200 |
| commit | 7729e396e399c349bb3b8b36f79ddce23f871d22 (patch) | |
| tree | 04135d64e40c9d92fc90f007fea6a0ead382f3f6 /sokol_app.h | |
| parent | 3907e180a890c3ef939c3c5749e09af222882d8f (diff) | |
sokol_app.h x11: protect from accessing uninitialized _sapp.clipboard.buffer
Diffstat (limited to 'sokol_app.h')
| -rw-r--r-- | sokol_app.h | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/sokol_app.h b/sokol_app.h index cefab74e..66242f38 100644 --- a/sokol_app.h +++ b/sokol_app.h @@ -9622,10 +9622,8 @@ _SOKOL_PRIVATE void _sapp_x11_init_extensions(void) { _sapp.x11.NET_WM_ICON = XInternAtom(_sapp.x11.display, "_NET_WM_ICON", False); _sapp.x11.NET_WM_STATE = XInternAtom(_sapp.x11.display, "_NET_WM_STATE", False); _sapp.x11.NET_WM_STATE_FULLSCREEN = XInternAtom(_sapp.x11.display, "_NET_WM_STATE_FULLSCREEN", False); - if (_sapp.clipboard.enabled) { - _sapp.x11.CLIPBOARD = XInternAtom(_sapp.x11.display, "CLIPBOARD", False); - _sapp.x11.TARGETS = XInternAtom(_sapp.x11.display, "TARGETS", False); - } + _sapp.x11.CLIPBOARD = XInternAtom(_sapp.x11.display, "CLIPBOARD", False); + _sapp.x11.TARGETS = XInternAtom(_sapp.x11.display, "TARGETS", False); if (_sapp.drop.enabled) { _sapp.x11.xdnd.XdndAware = XInternAtom(_sapp.x11.display, "XdndAware", False); _sapp.x11.xdnd.XdndEnter = XInternAtom(_sapp.x11.display, "XdndEnter", False); @@ -11284,6 +11282,10 @@ _SOKOL_PRIVATE void _sapp_x11_on_selectionrequest(XEvent* event) { if (req->selection != _sapp.x11.CLIPBOARD) { return; } + if (!_sapp.clipboard.enabled) { + return; + } + SOKOL_ASSERT(_sapp.clipboard.buffer); XSelectionEvent reply; _sapp_clear(&reply, sizeof(reply)); reply.type = SelectionNotify; |