commit 93cb07e376cb187315b843339c0e1f58351235e2
parent 83f2c14b2f8ed80e49dc846332894fa97abfc31f
Author: Steven Barth <steven@midlink.org>
Date: Sat, 4 Jul 2015 13:59:29 +0200
Merge pull request #1532 from pjoe/shadow-su-fix-controlling-term2
shadow: fix su controlling terminal #1521
Diffstat:
2 files changed, 18 insertions(+), 2 deletions(-)
diff --git a/utils/shadow/Makefile b/utils/shadow/Makefile
@@ -1,5 +1,5 @@
#
-# Copyright (C) 2008-2014 OpenWrt.org
+# Copyright (C) 2008-2015 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=shadow
PKG_VERSION:=4.2.1
-PKG_RELEASE:=4
+PKG_RELEASE:=5
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=http://pkg-shadow.alioth.debian.org/releases
diff --git a/utils/shadow/patches/004-fix-su-controoling-term.patch b/utils/shadow/patches/004-fix-su-controoling-term.patch
@@ -0,0 +1,16 @@
+--- a/src/su.c
++++ b/src/su.c
+@@ -1090,8 +1090,12 @@
+
+ if (fd >= 0) {
+ err = ioctl (fd, TIOCNOTTY, (char *) 0);
++ if (-1 == err && ENOTTY == errno) {
++ /* There are no controlling terminal already */
++ err = 0;
++ }
+ (void) close (fd);
+- } else if (ENXIO == errno) {
++ } else if (ENXIO == errno || EACCES == errno) {
+ /* There are no controlling terminal already */
+ err = 0;
+ }