[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
master 350918e7be: Adjust x_display_set_last_user_time for Xlib sign-ext
From: |
Po Lu |
Subject: |
master 350918e7be: Adjust x_display_set_last_user_time for Xlib sign-extension |
Date: |
Tue, 22 Nov 2022 07:58:19 -0500 (EST) |
branch: master
commit 350918e7be82fca046911073b360518173169255
Author: Po Lu <luangruo@yahoo.com>
Commit: Po Lu <luangruo@yahoo.com>
Adjust x_display_set_last_user_time for Xlib sign-extension
* src/xterm.c (x_display_set_last_user_time): Adjust for Xlib
sign extending fields in client messages to 64 bit long, which
then break x_display_set_last_user_time after 24 days, as Time
is unsigned long for historical reasons. (bug#59480)
---
src/xterm.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/src/xterm.c b/src/xterm.c
index 154f404e6b..732fbf462c 100644
--- a/src/xterm.c
+++ b/src/xterm.c
@@ -7749,6 +7749,11 @@ x_display_set_last_user_time (struct x_display_info
*dpyinfo, Time time,
old_time = dpyinfo->last_user_time;
#endif
+ /* Time can be sign extended if retrieved from a client message.
+ Make sure it is always 32 bits, or systems with 64-bit longs
+ will crash after 24 days of X server uptime. (bug#59480) */
+ time &= X_ULONG_MAX;
+
#ifdef ENABLE_CHECKING
eassert (time <= X_ULONG_MAX);
#endif
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- master 350918e7be: Adjust x_display_set_last_user_time for Xlib sign-extension,
Po Lu <=