systemd: add 2 patches from git master with 2 bugfixes (taken from Arch).
- fix parsing of /proc/net/unix on 32-bit - fix dep cycle on shutdown with rsyslog
This commit is contained in:
parent
116f32d887
commit
dcecb5d9c0
3 changed files with 113 additions and 0 deletions
|
@ -0,0 +1,86 @@
|
||||||
|
From fdcad0c25579a60061b1fda956686e878a80faef Mon Sep 17 00:00:00 2001
|
||||||
|
From: Lennart Poettering <lennart@poettering.net>
|
||||||
|
Date: Wed, 11 Jan 2012 22:07:35 +0100
|
||||||
|
Subject: [PATCH] tmpfiles: fix parsing of /proc/net/unix on 32Bit machines
|
||||||
|
|
||||||
|
Tracked down by Michael Meeks
|
||||||
|
---
|
||||||
|
src/tmpfiles.c | 30 ++++++++++++++++++++----------
|
||||||
|
1 files changed, 20 insertions(+), 10 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/src/tmpfiles.c b/src/tmpfiles.c
|
||||||
|
index 19a7c08..44e5c9d 100644
|
||||||
|
--- a/src/tmpfiles.c
|
||||||
|
+++ b/src/tmpfiles.c
|
||||||
|
@@ -117,41 +117,50 @@ static void load_unix_sockets(void) {
|
||||||
|
/* We maintain a cache of the sockets we found in
|
||||||
|
* /proc/net/unix to speed things up a little. */
|
||||||
|
|
||||||
|
- if (!(unix_sockets = set_new(string_hash_func, string_compare_func)))
|
||||||
|
+ unix_sockets = set_new(string_hash_func, string_compare_func);
|
||||||
|
+ if (!unix_sockets)
|
||||||
|
return;
|
||||||
|
|
||||||
|
- if (!(f = fopen("/proc/net/unix", "re")))
|
||||||
|
+ f = fopen("/proc/net/unix", "re");
|
||||||
|
+ if (!f)
|
||||||
|
return;
|
||||||
|
|
||||||
|
- if (!(fgets(line, sizeof(line), f)))
|
||||||
|
+ /* Skip header */
|
||||||
|
+ if (!fgets(line, sizeof(line), f))
|
||||||
|
goto fail;
|
||||||
|
|
||||||
|
for (;;) {
|
||||||
|
char *p, *s;
|
||||||
|
int k;
|
||||||
|
|
||||||
|
- if (!(fgets(line, sizeof(line), f)))
|
||||||
|
+ if (!fgets(line, sizeof(line), f))
|
||||||
|
break;
|
||||||
|
|
||||||
|
truncate_nl(line);
|
||||||
|
|
||||||
|
- if (strlen(line) < 53)
|
||||||
|
+ p = strchr(line, ':');
|
||||||
|
+ if (!p)
|
||||||
|
+ continue;
|
||||||
|
+
|
||||||
|
+ if (strlen(p) < 37)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
- p = line + 53;
|
||||||
|
+ p += 37;
|
||||||
|
p += strspn(p, WHITESPACE);
|
||||||
|
- p += strcspn(p, WHITESPACE);
|
||||||
|
+ p += strcspn(p, WHITESPACE); /* skip one more word */
|
||||||
|
p += strspn(p, WHITESPACE);
|
||||||
|
|
||||||
|
if (*p != '/')
|
||||||
|
continue;
|
||||||
|
|
||||||
|
- if (!(s = strdup(p)))
|
||||||
|
+ s = strdup(p);
|
||||||
|
+ if (!s)
|
||||||
|
goto fail;
|
||||||
|
|
||||||
|
path_kill_slashes(s);
|
||||||
|
|
||||||
|
- if ((k = set_put(unix_sockets, s)) < 0) {
|
||||||
|
+ k = set_put(unix_sockets, s);
|
||||||
|
+ if (k < 0) {
|
||||||
|
free(s);
|
||||||
|
|
||||||
|
if (k != -EEXIST)
|
||||||
|
@@ -1059,7 +1068,8 @@ int main(int argc, char *argv[]) {
|
||||||
|
Item *i;
|
||||||
|
Iterator iterator;
|
||||||
|
|
||||||
|
- if ((r = parse_argv(argc, argv)) <= 0)
|
||||||
|
+ r = parse_argv(argc, argv);
|
||||||
|
+ if (r <= 0)
|
||||||
|
return r < 0 ? EXIT_FAILURE : EXIT_SUCCESS;
|
||||||
|
|
||||||
|
log_set_target(LOG_TARGET_AUTO);
|
||||||
|
--
|
||||||
|
1.7.8.3
|
|
@ -0,0 +1,25 @@
|
||||||
|
From ead51eb4ed55981f290e40a871ffbca6480c4cd3 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Lennart Poettering <lennart@poettering.net>
|
||||||
|
Date: Thu, 12 Jan 2012 04:34:50 +0100
|
||||||
|
Subject: [PATCH] units: make sure syslog socket goes away early during
|
||||||
|
shutdown
|
||||||
|
|
||||||
|
---
|
||||||
|
units/syslog.socket | 2 ++
|
||||||
|
1 files changed, 2 insertions(+), 0 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/units/syslog.socket b/units/syslog.socket
|
||||||
|
index 323fa86..657e791 100644
|
||||||
|
--- a/units/syslog.socket
|
||||||
|
+++ b/units/syslog.socket
|
||||||
|
@@ -11,6 +11,8 @@
|
||||||
|
Description=Syslog Socket
|
||||||
|
DefaultDependencies=no
|
||||||
|
Before=sockets.target syslog.target
|
||||||
|
+Conflicts=shutdown.target
|
||||||
|
+Before=shutdown.target
|
||||||
|
|
||||||
|
# Pull in syslog.target to tell people that /dev/log is now accessible
|
||||||
|
Wants=syslog.target
|
||||||
|
--
|
||||||
|
1.7.8.3
|
|
@ -1,6 +1,8 @@
|
||||||
# Template file for 'systemd'
|
# Template file for 'systemd'
|
||||||
pkgname=systemd
|
pkgname=systemd
|
||||||
version=38
|
version=38
|
||||||
|
revision=1
|
||||||
|
patch_args="-Np1"
|
||||||
distfiles="http://www.freedesktop.org/software/$pkgname/$pkgname-$version.tar.xz"
|
distfiles="http://www.freedesktop.org/software/$pkgname/$pkgname-$version.tar.xz"
|
||||||
build_style=gnu-configure
|
build_style=gnu-configure
|
||||||
configure_args="--with-distro=other --with-rootprefix=
|
configure_args="--with-distro=other --with-rootprefix=
|
||||||
|
|
Loading…
Reference in a new issue