70f1b685ba
The get_sorted_session_displays() is broken in that it doesn't produce a sorted list of displays. The problem is the qsort comparison function which has 2 errors in 4 lines:- 1) The test is the wrong way round (i.e. arg1 < arg2 produces a +ve result instead of -ve) 2) Subtracting two unsigned ints in C will never return < 0 The broken function has been masked by other display checks which mean that it is only visible in a few situations:- 1) Starting two sessions very closely to each other may allocate the same display to both sessions. 2) If /tmp is namespaced, the other display checks do not work, and more than two sessions cannot be started. |
||
---|---|---|
.. | ||
chansrv | ||
libsesman | ||
sesexec | ||
tools | ||
Doxyfile | ||
eicp_process.c | ||
eicp_process.h | ||
ercp_process.c | ||
ercp_process.h | ||
lock_uds.c | ||
lock_uds.h | ||
Makefile.am | ||
notes.txt | ||
pre_session_list.c | ||
pre_session_list.h | ||
reconnectwm.sh | ||
scp_process.c | ||
scp_process.h | ||
sesexec_control.c | ||
sesexec_control.h | ||
sesman.c | ||
sesman.h | ||
sesman.ini.in | ||
session_list.c | ||
session_list.h | ||
sig.c | ||
sig.h | ||
startwm.sh |