procd: update to latest git head

Signed-off-by: John Crispin <blogic@openwrt.org>

SVN-Revision: 37504
master
John Crispin 11 years ago
parent 99f15eec91
commit 11d027380e
  1. 4
      package/system/procd/Makefile
  2. 49
      package/system/procd/patches/0001-early-keep-stdio-files-open.patch
  3. 40
      package/system/procd/patches/0002-early-remove-superfluous-close-of-stdio-file-descrip.patch

@ -1,13 +1,13 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=procd
PKG_VERSION:=2013-07-14
PKG_VERSION:=2013-07-22
PKG_RELEASE=$(PKG_SOURCE_VERSION)-1
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=git://nbd.name/luci2/procd.git
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
PKG_SOURCE_VERSION:=36d79a90c28ac9d655ccd8261b3ac0b497a5aec1
PKG_SOURCE_VERSION:=eed8e77dcf5b9ce9c21919ea6d549b5dd92bb18a
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
CMAKE_INSTALL:=1

@ -1,49 +0,0 @@
From 13ebb50d2789de7bd47cebe57e3f6eba58fdcc7e Mon Sep 17 00:00:00 2001
From: Gabor Juhos <juhosg@openwrt.org>
Date: Fri, 19 Jul 2013 08:43:35 +0200
Subject: [PATCH 1/2] early: keep stdio files open
At the end of the 'early_console' function, the
file descriptor is closed unconditionally. This
'close' call closes the stdio files if the fd
returned by the 'open(dev/console)' call equals
with any of the STD{IN,OUT,ERR}_FILENO values.
When this happens, all subsequent accesses to
the stdio files will fail and early console
access won't work.
To avoid this, don't close the file descriptor if
that equals with any of the STD*_FILENO values.
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
---
Note:
The issue happens if Linux is unable to open the
initial console before calling init. In this case,
the 'open(dev/console)' call in the 'early_console'
function returns with zero.
---
early.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/early.c b/early.c
index 27d0929..204623b 100644
--- a/early.c
+++ b/early.c
@@ -65,7 +65,11 @@ static void early_console(const char *dev)
dup2(dd, STDIN_FILENO);
dup2(dd, STDOUT_FILENO);
dup2(dd, STDERR_FILENO);
- close(dd);
+
+ if (dd != STDIN_FILENO &&
+ dd != STDOUT_FILENO &&
+ dd != STDERR_FILENO)
+ close(dd);
}
static void early_env(void)
--
1.7.10

@ -1,40 +0,0 @@
From 1edd25cfa0a26dac1ca5d49bce479ebdea336437 Mon Sep 17 00:00:00 2001
From: Gabor Juhos <juhosg@openwrt.org>
Date: Fri, 19 Jul 2013 08:21:17 +0200
Subject: [PATCH 2/2] early: remove superfluous close of stdio file
descriptors
'man dup2' says:
dup2() makes newfd be the copy of oldfd, closing newfd first if
necessary, but note the following:
* If oldfd is not a valid file descriptor, then the call fails,
and newfd is not closed.
* If oldfd is a valid file descriptor, and newfd has the same
value as oldfd, then dup2() does nothing, and returns newfd.
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
---
early.c | 4 ----
1 file changed, 4 deletions(-)
diff --git a/early.c b/early.c
index 204623b..f9e3277 100644
--- a/early.c
+++ b/early.c
@@ -53,10 +53,6 @@ static void early_console(const char *dev)
mkdev("*console", 0600);
dd = open(dev, O_RDWR);
- close(STDIN_FILENO);
- close(STDOUT_FILENO);
- close(STDERR_FILENO);
-
if (dd < 0) {
ERROR("Failed to open %s\n", dev);
return;
--
1.7.10
Loading…
Cancel
Save