You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Events are added to the queue with add_timeout(). The caller specifies a time msoffset milli-seconds in the future and a callback function which is called when this time is reached.
There are a couple of problems with this code:-
The milli-second time value is stored in a 32-bit unsigned int:-
This value wraps round every 49.7 days. Because of the way time comparisons are done, a wraparound of the value will cause timer events to stop firing.
The timer queue is unordered. This means the whole timer queue has to be scanned every time the next timeout has to be calculated. Storing the timer queue in time-order would mean just the earliest event could be considered.
At present the timer queue is only called from the RAIL code so addressing this is a relatively low priority.
The text was updated successfully, but these errors were encountered:
xrdp version
devel
Problem description
Chansrv has a timer queue in chansrv/chansrv.c.
Events are added to the queue with add_timeout(). The caller specifies a time
msoffset
milli-seconds in the future and a callback function which is called when this time is reached.There are a couple of problems with this code:-
xrdp/sesman/chansrv/chansrv.c
Lines 109 to 115 in db70ce8
This value wraps round every 49.7 days. Because of the way time comparisons are done, a wraparound of the value will cause timer events to stop firing.
At present the timer queue is only called from the RAIL code so addressing this is a relatively low priority.
The text was updated successfully, but these errors were encountered: