svn commit: r463982 - in head/net/xrdp-devel: . files

Tilman Keskinoz arved at FreeBSD.org
Fri Mar 9 17:49:21 UTC 2018


Author: arved
Date: Fri Mar  9 17:49:19 2018
New Revision: 463982
URL: https://svnweb.freebsd.org/changeset/ports/463982

Log:
  Backport patch from upstream issue #1030
  
  PR:		225859
  Submitted by:	maintainer

Added:
  head/net/xrdp-devel/files/patch-upstream-issue-1030   (contents, props changed)
Modified:
  head/net/xrdp-devel/Makefile

Modified: head/net/xrdp-devel/Makefile
==============================================================================
--- head/net/xrdp-devel/Makefile	Fri Mar  9 17:39:11 2018	(r463981)
+++ head/net/xrdp-devel/Makefile	Fri Mar  9 17:49:19 2018	(r463982)
@@ -4,6 +4,7 @@
 PORTNAME=	xrdp
 PORTVERSION=	0.9.5
 DISTVERSIONPREFIX=	v
+PORTREVISION=	1
 PORTEPOCH=	1
 CATEGORIES=	net
 PKGNAMESUFFIX=	-devel

Added: head/net/xrdp-devel/files/patch-upstream-issue-1030
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/net/xrdp-devel/files/patch-upstream-issue-1030	Fri Mar  9 17:49:19 2018	(r463982)
@@ -0,0 +1,54 @@
+--- sesman/session.c.orig	2017-12-27 14:40:24 UTC
++++ sesman/session.c
+@@ -484,22 +484,40 @@ session_start_fork(tbus data, tui8 type,
+          *  $OpenBSD: session.c,v 1.252 2010/03/07 11:57:13 dtucker Exp $
+          *  with some ideas about BSD process grouping to xrdp
+          */
++        pid_t bsdsespid = g_fork();
+ 
+-        /**
+-         * Create a new session and process group since the 4.4BSD
+-         * setlogin() affects the entire process group
+-         */
+-        if (g_setsid() < 0)
++        if (bsdsespid == -1)
+         {
+-            log_message(LOG_LEVEL_ERROR,
+-                        "setsid failed - pid %d", g_getpid());
++        }
++        else if (bsdsespid == 0) /* BSD session leader */
++        {
++            /**
++             * Create a new session and process group since the 4.4BSD
++             * setlogin() affects the entire process group
++             */
++            if (g_setsid() < 0)
++            {
++                log_message(LOG_LEVEL_ERROR,
++                            "setsid failed - pid %d", g_getpid());
++            }
++
++            if (g_setlogin(s->username) < 0)
++            {
++                log_message(LOG_LEVEL_ERROR,
++                            "setlogin failed for user %s - pid %d", s->username,
++                            g_getpid());
++            }
+         }
+ 
+-        if (g_setlogin(s->username) < 0)
++        g_waitpid(bsdsespid);
++
++        if (bsdsespid > 0)
+         {
+-            log_message(LOG_LEVEL_ERROR,
+-                        "setlogin failed for user %s - pid %d", s->username,
+-                        g_getpid());
++            g_exit(0);
++            /*
++             * intermediate sesman should exit here after WM exits.
++             * do not execure the following codes.
++             */
+         }
+ #endif
+         window_manager_pid = g_fork(); /* parent becomes X,


More information about the svn-ports-all mailing list