aboutsummaryrefslogtreecommitdiff
path: root/net/xrdp-devel
diff options
context:
space:
mode:
authorTilman Keskinoz <arved@FreeBSD.org>2018-03-09 17:49:19 +0000
committerTilman Keskinoz <arved@FreeBSD.org>2018-03-09 17:49:19 +0000
commitf7ce434da99592853c293d57f2c621e2f5637c67 (patch)
tree7f3a410cd0e82b3777e002587c7642f5b4d61481 /net/xrdp-devel
parent283771692c6575ce10dd16266c8cb9f19be2aba4 (diff)
downloadports-f7ce434da99592853c293d57f2c621e2f5637c67.tar.gz
ports-f7ce434da99592853c293d57f2c621e2f5637c67.zip
Notes
Diffstat (limited to 'net/xrdp-devel')
-rw-r--r--net/xrdp-devel/Makefile1
-rw-r--r--net/xrdp-devel/files/patch-upstream-issue-103054
2 files changed, 55 insertions, 0 deletions
diff --git a/net/xrdp-devel/Makefile b/net/xrdp-devel/Makefile
index 0ab9ee96bc16..b04b858e08d4 100644
--- a/net/xrdp-devel/Makefile
+++ b/net/xrdp-devel/Makefile
@@ -4,6 +4,7 @@
PORTNAME= xrdp
PORTVERSION= 0.9.5
DISTVERSIONPREFIX= v
+PORTREVISION= 1
PORTEPOCH= 1
CATEGORIES= net
PKGNAMESUFFIX= -devel
diff --git a/net/xrdp-devel/files/patch-upstream-issue-1030 b/net/xrdp-devel/files/patch-upstream-issue-1030
new file mode 100644
index 000000000000..6689c303b4c3
--- /dev/null
+++ b/net/xrdp-devel/files/patch-upstream-issue-1030
@@ -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,