diff options
author | Ben Cohen <ben-cohen@users.noreply.github.com> | 2017-06-22 19:38:37 +0100 |
---|---|---|
committer | Idan Freiberg <speidy@gmail.com> | 2018-03-27 09:22:49 +0300 |
commit | 3b5b7a59351757e3983d54faf754328b44d55990 (patch) | |
tree | ddaf7abc04385f3c5d83481b3fed6d4a84def94a /xorg/X11R7.6/rdp/rdpup.c | |
parent | 9f80fcd74e1b5d438c7b4459c93ba98943af884c (diff) | |
download | xrdp-proprietary-3b5b7a59351757e3983d54faf754328b44d55990.tar.gz xrdp-proprietary-3b5b7a59351757e3983d54faf754328b44d55990.zip |
UDS file deleted after first connection
If you run xrdp with a Unix Domain Socket (UDS) for the port specified in
/etc/xrdp/xrdp.ini then the first connection succeeds but subsequent
connections fail. In fact the UDS is deleted from the filesystem as soon
as the first connection is established.
Test case:
1. Edit /etc/xrdp/xrdp.ini to set "port=/var/run/xrdp-local.socket".
2. Restart xrdp.
3. Run the following. When rdesktop starts up and the logon dialog is
displayed, press "Cancel".
sudo socat TCP-LISTEN:12345 UNIX-CONNECT:/var/run/xrdp-local.socket &
rdesktop localhost:12345
4. Run the following:
sudo socat TCP-LISTEN:12346 UNIX-CONNECT:/var/run/xrdp-local.socket &
rdesktop localhost:12346
Expected behaviour: rdesktop starts up and displays the logon dialog.
Observed behaviour: rdesktop exits with "ERROR: Connection closed" and
socat exits with "No such file or directory.
This is because in the child process after forking, xrdp_listen_fork()
calls trans_delete() which deletes the UDS. Simply commenting out the
g_file_delete() and g_free() fixes this, but that isn't a proper solution
because trans_delete() is called from elsewhere where the UDS might no
longer be wanted.
Fix by adding a function trans_delete_from_child() that frees and clears
listen_filename before calling trans_delete(), and call the new function
from xrdp_listen_fork().
(Workaround: set "fork=false" in /etc/xrdp/xrdp.ini, because
trans_delete() is then not called.)
Diffstat (limited to 'xorg/X11R7.6/rdp/rdpup.c')
0 files changed, 0 insertions, 0 deletions