summaryrefslogtreecommitdiffstats
path: root/package/network/services/lldpd/patches/001-no-multiuser.patch
diff options
context:
space:
mode:
Diffstat (limited to 'package/network/services/lldpd/patches/001-no-multiuser.patch')
-rw-r--r--package/network/services/lldpd/patches/001-no-multiuser.patch40
1 files changed, 40 insertions, 0 deletions
diff --git a/package/network/services/lldpd/patches/001-no-multiuser.patch b/package/network/services/lldpd/patches/001-no-multiuser.patch
new file mode 100644
index 000000000..5f216c428
--- /dev/null
+++ b/package/network/services/lldpd/patches/001-no-multiuser.patch
@@ -0,0 +1,40 @@
+--- a/src/priv.c
++++ b/src/priv.c
+@@ -518,12 +518,14 @@ priv_init(char *chrootdir)
+ fatal("[priv]: unable to create socket pair for privilege separation");
+
+ /* Get users */
++ /*
+ if ((user = getpwnam(PRIVSEP_USER)) == NULL)
+ fatal("[priv]: no " PRIVSEP_USER " user for privilege separation");
+ uid = user->pw_uid;
+ if ((group = getgrnam(PRIVSEP_GROUP)) == NULL)
+ fatal("[priv]: no " PRIVSEP_GROUP " group for privilege separation");
+ gid = group->gr_gid;
++ */
+
+ /* Spawn off monitor */
+ if ((monitored = fork()) < 0)
+@@ -534,17 +536,17 @@ priv_init(char *chrootdir)
+ if (RUNNING_ON_VALGRIND)
+ LLOG_WARNX("[priv]: running on valgrind, keep privileges");
+ else {
+- if (chroot(chrootdir) == -1)
+- fatal("[priv]: unable to chroot");
+- if (chdir("/") != 0)
++ /*if (chroot(chrootdir) == -1)
++ fatal("[priv]: unable to chroot");*/
++ if (chdir("/tmp") != 0)
+ fatal("[priv]: unable to chdir");
+ gidset[0] = gid;
+- if (setresgid(gid, gid, gid) == -1)
++ /*if (setresgid(gid, gid, gid) == -1)
+ fatal("[priv]: setresgid() failed");
+ if (setgroups(1, gidset) == -1)
+ fatal("[priv]: setgroups() failed");
+ if (setresuid(uid, uid, uid) == -1)
+- fatal("[priv]: setresuid() failed");
++ fatal("[priv]: setresuid() failed");*/
+ }
+ remote = pair[0];
+ close(pair[1]);