diff options
author | marha <marha@users.sourceforge.net> | 2014-05-18 14:43:25 +0200 |
---|---|---|
committer | marha <marha@users.sourceforge.net> | 2014-05-18 14:43:25 +0200 |
commit | a27ca45b676116ebbce31973bc1a319cad76ffbf (patch) | |
tree | 098711ced704936739bc91abbd75942a815d89db /xorg-server/hw/xfree86/os-support | |
parent | 0b89941658d6117d17555ee28c6e5d7715673705 (diff) | |
parent | 55cf29d7f748b814a2b8eb016fbf15635d56aa53 (diff) | |
download | vcxsrv-a27ca45b676116ebbce31973bc1a319cad76ffbf.tar.gz vcxsrv-a27ca45b676116ebbce31973bc1a319cad76ffbf.tar.bz2 vcxsrv-a27ca45b676116ebbce31973bc1a319cad76ffbf.zip |
Merge remote-tracking branch 'origin/released'
Conflicts:
mesalib/src/glsl/builtin_functions.cpp
Diffstat (limited to 'xorg-server/hw/xfree86/os-support')
-rw-r--r-- | xorg-server/hw/xfree86/os-support/linux/lnx_platform.c | 2 | ||||
-rw-r--r-- | xorg-server/hw/xfree86/os-support/linux/systemd-logind.c | 7 |
2 files changed, 6 insertions, 3 deletions
diff --git a/xorg-server/hw/xfree86/os-support/linux/lnx_platform.c b/xorg-server/hw/xfree86/os-support/linux/lnx_platform.c index dbd7aa0aa..308275ab4 100644 --- a/xorg-server/hw/xfree86/os-support/linux/lnx_platform.c +++ b/xorg-server/hw/xfree86/os-support/linux/lnx_platform.c @@ -37,7 +37,7 @@ get_drm_info(struct OdevAttributes *attribs, char *path, int delayed_index) if (paused) { LogMessage(X_ERROR, "Error systemd-logind returned paused fd for drm node\n"); - systemd_logind_release_fd(major, minor); + systemd_logind_release_fd(major, minor, -1); return FALSE; } config_odev_add_int_attribute(attribs, ODEV_ATTRIB_FD, fd); diff --git a/xorg-server/hw/xfree86/os-support/linux/systemd-logind.c b/xorg-server/hw/xfree86/os-support/linux/systemd-logind.c index ed670a88c..73a8d55bf 100644 --- a/xorg-server/hw/xfree86/os-support/linux/systemd-logind.c +++ b/xorg-server/hw/xfree86/os-support/linux/systemd-logind.c @@ -162,7 +162,7 @@ cleanup: } void -systemd_logind_release_fd(int _major, int _minor) +systemd_logind_release_fd(int _major, int _minor, int fd) { struct systemd_logind_info *info = &logind_info; InputInfoPtr pInfo; @@ -174,7 +174,7 @@ systemd_logind_release_fd(int _major, int _minor) int matches = 0; if (!info->session || major == 0) - return; + goto close; /* Only release the fd if there is only 1 InputInfo left for this major * and minor, otherwise other InputInfo's are still referencing the fd. */ @@ -218,6 +218,9 @@ cleanup: if (reply) dbus_message_unref(reply); dbus_error_free(&error); +close: + if (fd != -1) + close(fd); } int |