Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 23 Mar 2015 12:18:15 +0000 (UTC)
From:      Koop Mast <kwm@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r381990 - in head/sysutils/consolekit: . files
Message-ID:  <201503231218.t2NCIFLd039305@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: kwm
Date: Mon Mar 23 12:18:14 2015
New Revision: 381990
URL: https://svnweb.freebsd.org/changeset/ports/381990
QAT: https://qat.redports.org/buildarchive/r381990/

Log:
  Fix a segvault, which was caused by a not validating if a enviroment string
    is empty or not [1]
  Add addition way to find the ttyv device from the Xorg.log [2]
  
  PR:		198697 [1]
  Submitted by:	Pete Johanson <peter@peterjohanson.com> [1], dumbbell@ [1][2]

Modified:
  head/sysutils/consolekit/Makefile
  head/sysutils/consolekit/files/ck-get-x11-display-device
  head/sysutils/consolekit/files/patch-src_ck-sysdeps-freebsd.c

Modified: head/sysutils/consolekit/Makefile
==============================================================================
--- head/sysutils/consolekit/Makefile	Mon Mar 23 12:01:36 2015	(r381989)
+++ head/sysutils/consolekit/Makefile	Mon Mar 23 12:18:14 2015	(r381990)
@@ -1,10 +1,9 @@
 # Created by: FreeBSD GNOME Team <gnome@freebsd.org>
 # $FreeBSD$
-#    $MCom: ports/trunk/sysutils/consolekit/Makefile 19822 2014-08-20 08:57:46Z gusi $
 
 PORTNAME=	consolekit
 PORTVERSION=	0.4.5
-PORTREVISION=	2
+PORTREVISION=	3
 CATEGORIES=	sysutils gnome
 MASTER_SITES=	http://www.freedesktop.org/software/ConsoleKit/dist/
 DISTFILES=	ConsoleKit-${PORTVERSION}${EXTRACT_SUFX}
@@ -33,7 +32,7 @@ post-install:
 	    	${STAGEDIR}${PREFIX}/libexec/ck-get-x11-display-device
 	${INSTALL_SCRIPT} ${FILESDIR}/ck-get-x11-server-pid \
 	    	${STAGEDIR}${PREFIX}/libexec/ck-get-x11-server-pid
-	${MKDIR} ${STAGEDIR}/var/log/ConsoleKit
+	@${MKDIR} ${STAGEDIR}/var/log/ConsoleKit
 	${TOUCH} ${STAGEDIR}/var/log/ConsoleKit/history
 
 .include <bsd.port.mk>

Modified: head/sysutils/consolekit/files/ck-get-x11-display-device
==============================================================================
--- head/sysutils/consolekit/files/ck-get-x11-display-device	Mon Mar 23 12:01:36 2015	(r381989)
+++ head/sysutils/consolekit/files/ck-get-x11-display-device	Mon Mar 23 12:18:14 2015	(r381990)
@@ -26,6 +26,11 @@ pid=$(${CAT} "/tmp/.X${dispnum}-lock")
 
 device=$(${FSTAT} -p ${pid} | ${GREP} ttyv | ${AWK} '{print $8}')
 
+if [ -z "${device}" -a -f "/var/log/Xorg.$dispnum.log" ]; then
+	device=$(awk '/using VT number/ { print "ttyv" ($7 - 1); }' \
+	    "/var/log/Xorg.$dispnum.log")
+fi
+
 if [ -z "${device}" ]; then
     echo "ERROR: Failed to find TTY device for X server on display ${dispnum}"
     exit 1

Modified: head/sysutils/consolekit/files/patch-src_ck-sysdeps-freebsd.c
==============================================================================
--- head/sysutils/consolekit/files/patch-src_ck-sysdeps-freebsd.c	Mon Mar 23 12:01:36 2015	(r381989)
+++ head/sysutils/consolekit/files/patch-src_ck-sysdeps-freebsd.c	Mon Mar 23 12:18:14 2015	(r381990)
@@ -1,5 +1,5 @@
---- src/ck-sysdeps-freebsd.c.orig	2008-04-03 20:36:21.000000000 -0400
-+++ src/ck-sysdeps-freebsd.c	2009-04-18 18:04:39.000000000 -0400
+--- src/ck-sysdeps-freebsd.c.orig	2010-09-03 15:54:31.000000000 +0200
++++ src/ck-sysdeps-freebsd.c	2015-03-23 09:28:20.476513000 +0100
 @@ -27,6 +27,7 @@
  #include <unistd.h>
  #include <string.h>
@@ -57,7 +57,17 @@
          }
  
          hash = g_hash_table_new_full (g_str_hash,
-@@ -270,6 +273,7 @@ ck_unix_pid_get_env_hash (pid_t pid)
+@@ -261,6 +264,9 @@ ck_unix_pid_get_env_hash (pid_t pid)
+         for (i = 0; penv[i] != NULL; i++) {
+                 char **vals;
+ 
++	        if (!penv[i][0])
++	                continue;
++
+                 vals = g_strsplit (penv[i], "=", 2);
+                 if (vals != NULL) {
+                         g_hash_table_insert (hash,
+@@ -270,6 +276,7 @@ ck_unix_pid_get_env_hash (pid_t pid)
                  }
          }
  
@@ -65,7 +75,7 @@
          kvm_close (kd);
  
          return hash;
-@@ -280,7 +284,7 @@ ck_unix_pid_get_env (pid_t       pid,
+@@ -280,7 +287,7 @@ ck_unix_pid_get_env (pid_t       pid,
                       const char *var)
  {
          GHashTable *hash;
@@ -74,7 +84,7 @@
  
          /*
           * Would probably be more efficient to just loop through the
-@@ -288,6 +292,8 @@ ck_unix_pid_get_env (pid_t       pid,
+@@ -288,6 +295,8 @@ ck_unix_pid_get_env (pid_t       pid,
           * table, but this works for now.
           */
          hash = ck_unix_pid_get_env_hash (pid);
@@ -83,7 +93,7 @@
          val  = g_strdup (g_hash_table_lookup (hash, var));
          g_hash_table_destroy (hash);
  
-@@ -327,38 +333,38 @@ gboolean
+@@ -327,38 +336,38 @@ gboolean
  ck_get_max_num_consoles (guint *num)
  {
          int      max_consoles;
@@ -138,8 +148,8 @@
 +        return TRUE;
  }
  
- char *
-@@ -369,7 +375,12 @@ ck_get_console_device_for_num (guint num
+ gboolean
+@@ -375,7 +384,12 @@ ck_get_console_device_for_num (guint num
          /* The device number is always one less than the VT number. */
          num--;
  
@@ -153,7 +163,7 @@
  
          return device;
  }
-@@ -379,6 +390,7 @@ ck_get_console_num_from_device (const ch
+@@ -385,6 +399,7 @@ ck_get_console_num_from_device (const ch
                                  guint      *num)
  {
          guint    n;
@@ -161,7 +171,7 @@
          gboolean ret;
  
          n = 0;
-@@ -388,7 +400,11 @@ ck_get_console_num_from_device (const ch
+@@ -394,7 +409,11 @@ ck_get_console_num_from_device (const ch
                  return FALSE;
          }
  
@@ -174,7 +184,7 @@
                  /* The VT number is always one more than the device number. */
                  n++;
                  ret = TRUE;
-@@ -408,6 +424,7 @@ ck_get_active_console_num (int    consol
+@@ -414,6 +433,7 @@ ck_get_active_console_num (int    consol
          gboolean ret;
          int      res;
          int      active;
@@ -182,7 +192,7 @@
  
          g_assert (console_fd != -1);
  
-@@ -420,7 +437,12 @@ ck_get_active_console_num (int    consol
+@@ -426,7 +446,12 @@ ck_get_active_console_num (int    consol
                  goto out;
          }
  



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201503231218.t2NCIFLd039305>