public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] gentoo-x86 commit in sys-auth/consolekit/files: consolekit-0.4.2-revert.patch
@ 2010-09-09 21:13 Samuli Suominen (ssuominen)
  0 siblings, 0 replies; 2+ messages in thread
From: Samuli Suominen (ssuominen) @ 2010-09-09 21:13 UTC (permalink / raw
  To: gentoo-commits

ssuominen    10/09/09 21:13:16

  Added:                consolekit-0.4.2-revert.patch
  Log:
  Revert upstream "Only set sessions to be is-local=true if set by a trusted party" wrt #336634.
  
  (Portage version: 2.2_rc78/cvs/Linux x86_64)

Revision  Changes    Path
1.1                  sys-auth/consolekit/files/consolekit-0.4.2-revert.patch

file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-auth/consolekit/files/consolekit-0.4.2-revert.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-auth/consolekit/files/consolekit-0.4.2-revert.patch?rev=1.1&content-type=text/plain

Index: consolekit-0.4.2-revert.patch
===================================================================
Revert upstream http://cgit.freedesktop.org/ConsoleKit/commit/?id=4f88228f31a63c026c424a92827f26ad7535275c
which renders ConsoleKit unusable.

diff -ur ConsoleKit-0.4.2.orig/src/ck-manager.c ConsoleKit-0.4.2/src/ck-manager.c
--- ConsoleKit-0.4.2.orig/src/ck-manager.c	2010-09-03 16:54:31.000000000 +0300
+++ ConsoleKit-0.4.2/src/ck-manager.c	2010-09-10 00:02:32.000000000 +0300
@@ -1660,175 +1660,12 @@
         dbus_g_method_return (context, cookie);
 }
 
-enum {
-        PROP_STRING,
-        PROP_BOOLEAN,
-};
-
-#define CK_TYPE_PARAMETER_STRUCT (dbus_g_type_get_struct ("GValueArray", \
-                                                          G_TYPE_STRING,  \
-                                                          G_TYPE_VALUE, \
-                                                          G_TYPE_INVALID))
-
-static gboolean
-_get_parameter (GPtrArray  *parameters,
-                const char *name,
-                int         prop_type,
-                gpointer   *value)
-{
-        gboolean ret;
-        int      i;
-
-        if (parameters == NULL) {
-                return FALSE;
-        }
-
-        ret = FALSE;
-
-        for (i = 0; i < parameters->len && ret == FALSE; i++) {
-                gboolean    res;
-                GValue      val_struct = { 0, };
-                char       *prop_name;
-                GValue     *prop_val;
-
-                g_value_init (&val_struct, CK_TYPE_PARAMETER_STRUCT);
-                g_value_set_static_boxed (&val_struct, g_ptr_array_index (parameters, i));
-
-                res = dbus_g_type_struct_get (&val_struct,
-                                              0, &prop_name,
-                                              1, &prop_val,
-                                              G_MAXUINT);
-                if (! res) {
-                        g_debug ("Unable to extract parameter input");
-                        goto cont;
-                }
-
-                if (prop_name == NULL) {
-                        g_debug ("Skipping NULL parameter");
-                        goto cont;
-                }
-
-                if (strcmp (prop_name, name) != 0) {
-                        goto cont;
-                }
-
-                switch (prop_type) {
-                case PROP_STRING:
-                        if (value != NULL) {
-                                *value = g_value_dup_string (prop_val);
-                        }
-                        break;
-                case PROP_BOOLEAN:
-                        if (value != NULL) {
-                                *(gboolean *)value = g_value_get_boolean (prop_val);
-                        }
-                        break;
-                default:
-                        g_assert_not_reached ();
-                        break;
-                }
-
-                ret = TRUE;
-
-        cont:
-                g_free (prop_name);
-                if (prop_val != NULL) {
-                        g_value_unset (prop_val);
-                        g_free (prop_val);
-                }
-        }
-
-        return ret;
-}
-
-static gboolean
-_verify_login_session_id_is_local (CkManager  *manager,
-                                   const char *login_session_id)
-{
-        GHashTableIter iter;
-        const char    *id;
-        CkSession     *session;
-
-        g_return_val_if_fail (CK_IS_MANAGER (manager), FALSE);
-
-        /* If any local session exists for the given login session id
-           then that means a trusted party has vouched for the
-           original login */
-
-        g_debug ("Looking for local sessions for login-session-id=%s", login_session_id);
-
-        session = NULL;
-        g_hash_table_iter_init (&iter, manager->priv->sessions);
-        while (g_hash_table_iter_next (&iter, (gpointer *)&id, (gpointer *)&session)) {
-                if (session != NULL) {
-                        gboolean is_local;
-                        char    *sessid;
-
-                        sessid = NULL;
-                        g_object_get (session,
-                                      "login-session-id", &sessid,
-                                      "is-local", &is_local,
-                                      NULL);
-                        if (g_strcmp0 (sessid, login_session_id) == 0 && is_local) {
-                                g_debug ("CkManager: found is-local=true on %s", id);
-                                return TRUE;
-                        }
-                }
-        }
-
-        return FALSE;
-}
-
-static void
-add_param_boolean (GPtrArray  *parameters,
-                   const char *key,
-                   gboolean    value)
-{
-        GValue   val = { 0, };
-        GValue   param_val = { 0, };
-
-        g_value_init (&val, G_TYPE_BOOLEAN);
-        g_value_set_boolean (&val, value);
-        g_value_init (&param_val, CK_TYPE_PARAMETER_STRUCT);
-        g_value_take_boxed (&param_val,
-                            dbus_g_type_specialized_construct (CK_TYPE_PARAMETER_STRUCT));
-        dbus_g_type_struct_set (&param_val,
-                                0, key,
-                                1, &val,
-                                G_MAXUINT);
-        g_value_unset (&val);
-
-        g_ptr_array_add (parameters, g_value_get_boxed (&param_val));
-}
-
 static void
 verify_and_open_session_for_leader (CkManager             *manager,
                                     CkSessionLeader       *leader,
-                                    GPtrArray             *parameters,
+                                    const GPtrArray       *parameters,
                                     DBusGMethodInvocation *context)
 {
-        /* Only allow a local session if originating from an existing
-           local session.  Effectively this means that only trusted
-           parties can create local sessions. */
-
-        g_debug ("CkManager: verifying session for leader");
-
-        if (parameters != NULL && ! _get_parameter (parameters, "is-local", PROP_BOOLEAN, NULL)) {
-                gboolean is_local;
-                char    *login_session_id;
-
-                g_debug ("CkManager: is-local has not been set, will inherit from existing login-session-id if available");
-
-                is_local = FALSE;
-
-                if (_get_parameter (parameters, "login-session-id", PROP_STRING, (gpointer *) &login_session_id)) {
-                        is_local = _verify_login_session_id_is_local (manager, login_session_id);
-                        g_debug ("CkManager: found is-local=%s", is_local ? "true" : "false");
-                }
-
-                add_param_boolean (parameters, "is-local", is_local);
-        }
-
         open_session_for_leader (manager,
                                  leader,
                                  parameters,
diff -ur ConsoleKit-0.4.2.orig/tools/ck-collect-session-info.c ConsoleKit-0.4.2/tools/ck-collect-session-info.c
--- ConsoleKit-0.4.2.orig/tools/ck-collect-session-info.c	2010-09-03 16:54:31.000000000 +0300
+++ ConsoleKit-0.4.2/tools/ck-collect-session-info.c	2010-09-10 00:06:30.000000000 +0300
@@ -274,7 +274,8 @@
         si->x11_display_device = ck_process_stat_get_tty (xorg_stat);
         ck_process_stat_free (xorg_stat);
 
-        /* don't set is-local here - let the daemon do that */
+        si->is_local = TRUE;
+        si->is_local_is_set = TRUE;
 
         g_free (si->remote_host_name);
         si->remote_host_name = NULL;
@@ -303,6 +304,13 @@
 
         fill_x11_info (si);
 
+        if (! si->is_local_is_set) {
+                /* FIXME: how should we set this? */
+                /* non x11 sessions must be local I guess */
+                si->is_local = TRUE;
+                si->is_local_is_set = TRUE;
+        }
+
         res = ck_unix_pid_get_login_session_id (si->pid, &si->login_session_id);
         if (! res) {
                 si->login_session_id = NULL;






^ permalink raw reply	[flat|nested] 2+ messages in thread

* [gentoo-commits] gentoo-x86 commit in sys-auth/consolekit/files: consolekit-0.4.2-revert.patch
@ 2010-09-09 21:18 Samuli Suominen (ssuominen)
  0 siblings, 0 replies; 2+ messages in thread
From: Samuli Suominen (ssuominen) @ 2010-09-09 21:18 UTC (permalink / raw
  To: gentoo-commits

ssuominen    10/09/09 21:18:11

  Modified:             consolekit-0.4.2-revert.patch
  Log:
  add bug # to patch
  
  (Portage version: 2.2_rc78/cvs/Linux x86_64)

Revision  Changes    Path
1.2                  sys-auth/consolekit/files/consolekit-0.4.2-revert.patch

file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-auth/consolekit/files/consolekit-0.4.2-revert.patch?rev=1.2&view=markup
plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-auth/consolekit/files/consolekit-0.4.2-revert.patch?rev=1.2&content-type=text/plain
diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-auth/consolekit/files/consolekit-0.4.2-revert.patch?r1=1.1&r2=1.2

Index: consolekit-0.4.2-revert.patch
===================================================================
RCS file: /var/cvsroot/gentoo-x86/sys-auth/consolekit/files/consolekit-0.4.2-revert.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- consolekit-0.4.2-revert.patch	9 Sep 2010 21:13:16 -0000	1.1
+++ consolekit-0.4.2-revert.patch	9 Sep 2010 21:18:11 -0000	1.2
@@ -1,3 +1,5 @@
+http://bugs.gentoo.org/336634
+
 Revert upstream http://cgit.freedesktop.org/ConsoleKit/commit/?id=4f88228f31a63c026c424a92827f26ad7535275c
 which renders ConsoleKit unusable.
 






^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2010-09-09 21:18 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-09-09 21:18 [gentoo-commits] gentoo-x86 commit in sys-auth/consolekit/files: consolekit-0.4.2-revert.patch Samuli Suominen (ssuominen)
  -- strict thread matches above, loose matches on Subject: below --
2010-09-09 21:13 Samuli Suominen (ssuominen)

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox