about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorYang Liu <liuyang22@iscas.ac.cn>2025-09-05 00:18:44 +0800
committerGitHub <noreply@github.com>2025-09-04 18:18:44 +0200
commit1ef35d5d8b8f913f199ac2ebc60647703bc155ba (patch)
tree592091b11dcc5dbf32c485d159f1214ec53de860 /src
parent65b7909f6eb886725a64699364d99892b3a1134c (diff)
downloadbox64-1ef35d5d8b8f913f199ac2ebc60647703bc155ba.tar.gz
box64-1ef35d5d8b8f913f199ac2ebc60647703bc155ba.zip
[BOX32] Fixed some strange XErrorEvent case (#3006)
Diffstat (limited to 'src')
-rw-r--r--src/libtools/my_x11_xevent.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/libtools/my_x11_xevent.c b/src/libtools/my_x11_xevent.c
index bd1bf97f..d1fec986 100644
--- a/src/libtools/my_x11_xevent.c
+++ b/src/libtools/my_x11_xevent.c
@@ -36,9 +36,10 @@ void convertXEvent(my_XEvent_32_t* dst, my_XEvent_t* src)
     if(!src->type) {
         // This is an XErrorEvent, and it's different!
         dst->xerror.type = src->xerror.type;
-        dst->xerror.display = to_ptrv(FindDisplay(src->xerror.display));
-        dst->xerror.resourceid = to_ulong(src->xerror.resourceid);
-        dst->xerror.serial = to_ulong(src->xerror.serial);
+        // use the silent version here because sometimes src->xerror points to some garbage (we don't know why!)
+        dst->xerror.display = to_ptrv_silent(FindDisplay(src->xerror.display));
+        dst->xerror.resourceid = to_ulong_silent(src->xerror.resourceid);
+        dst->xerror.serial = to_ulong_silent(src->xerror.serial);
         dst->xerror.error_code = src->xerror.error_code;
         dst->xerror.request_code = src->xerror.request_code;
         dst->xerror.minor_code = src->xerror.minor_code;