+++ /dev/null
-From: William Jon McCann <mccann@jhu.edu>
-Date: Tue, 15 May 2007 15:15:12 +0000 (-0400)
-Subject: a few fixes for getfd suggested by Lennart
-X-Git-Url: http://gitweb.freedesktop.org/?p=ConsoleKit.git;a=commitdiff;h=17ff9ceb88e0b7f6dc5a7e6eac5ff98cb4a5cabe
-
-a few fixes for getfd suggested by Lennart
-
-I am currently investigating how to best integrate PulseAudio with
-ConsoleKit/PolicyKit. While doing that I had a look on your code, and
-found a few issues in getfd.c I'd like to report, before I forget
-them. I couldn't find any bugzilla with at consolekit project (neither
-fedora, nor fdo, nor gnome?) hence I am mailing you in person.
-
-In getfd.c in open_a_console() a close() is missing if is_a_console is
-missing.
-
-The open() in open_a_console() should probably use O_NOCTTY. Otherwise
-C-c on the console might end up in a SIGINT to your daemon process!
-
-Also I'd add an isatty() check to is_a_console(), to makes sure that
-you're actually talking to a TTY before you issue KDGKBTYPE on
-it. ioctl()s are unfortunately not unique, hence i'd recommend that check.
-
-That's it,
-
-Lennart
----
-
---- a/src/getfd.c
-+++ b/src/getfd.c
-@@ -30,7 +30,8 @@ is_a_console (int fd)
- char arg;
-
- arg = 0;
-- return (ioctl (fd, KDGKBTYPE, &arg) == 0
-+ return (isatty (fd)
-+ && ioctl (fd, KDGKBTYPE, &arg) == 0
- && ((arg == KB_101) || (arg == KB_84)));
- }
-
-@@ -39,11 +40,18 @@ open_a_console (char *fnam)
- {
- int fd;
-
-- fd = open (fnam, O_RDONLY);
-+ fd = open (fnam, O_RDONLY | O_NOCTTY);
- if (fd < 0 && errno == EACCES)
-- fd = open(fnam, O_WRONLY);
-- if (fd < 0 || ! is_a_console (fd))
-+ fd = open (fnam, O_WRONLY | O_NOCTTY);
-+
-+ if (fd < 0)
- return -1;
-+
-+ if (! is_a_console (fd)) {
-+ close (fd);
-+ fd = -1;
-+ }
-+
- return fd;
- }
-
+++ /dev/null
---- ConsoleKit-0.2.1/data/ConsoleKit.conf 2007-03-09 19:13:52.000000000 +0100
-+++ /etc/dbus-1/system.d/ConsoleKit.conf 2007-09-26 21:10:07.967025557 +0200
-@@ -37,7 +37,7 @@
- send_interface="org.freedesktop.DBus.Properties" />
- </policy>
-
-- <policy user="gdm">
-+ <policy user="xdm">
- <allow send_interface="org.freedesktop.ConsoleKit.Manager"/>
- <allow send_interface="org.freedesktop.ConsoleKit.Seat"/>
- <allow send_interface="org.freedesktop.ConsoleKit.Session"/>