forked from pool/systemd
.
OBS-URL: https://build.opensuse.org/package/show/Base:System/systemd?expand=0&rev=783
This commit is contained in:
parent
69798aac18
commit
f0d7bbb68c
@ -0,0 +1,30 @@
|
||||
From e8c108ca9f11a382742f212f5b42a02536b3d40f Mon Sep 17 00:00:00 2001
|
||||
From: Philippe De Swert <philippedeswert@gmail.com>
|
||||
Date: Wed, 17 Sep 2014 00:27:16 +0300
|
||||
Subject: [PATCH] journal: Do not count on the compiler initializing
|
||||
found_last to false
|
||||
|
||||
There is a very unlikely case where this can happen since gcc usually
|
||||
does the sane thing. But let's make sure found_last is initialized anyway.
|
||||
|
||||
Fixes: CID#996386
|
||||
---
|
||||
src/journal/journal-verify.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git src/journal/journal-verify.c src/journal/journal-verify.c
|
||||
index 6c8ca8c..b4e8f73 100644
|
||||
--- src/journal/journal-verify.c
|
||||
+++ src/journal/journal-verify.c
|
||||
@@ -804,7 +804,7 @@ int journal_file_verify(
|
||||
usec_t last_usec = 0;
|
||||
int data_fd = -1, entry_fd = -1, entry_array_fd = -1;
|
||||
unsigned i;
|
||||
- bool found_last;
|
||||
+ bool found_last = false;
|
||||
#ifdef HAVE_GCRYPT
|
||||
uint64_t last_tag = 0;
|
||||
#endif
|
||||
--
|
||||
1.7.9.2
|
||||
|
25
0002-include-fcntl.h-rather-than-sys-fcntl.h.patch
Normal file
25
0002-include-fcntl.h-rather-than-sys-fcntl.h.patch
Normal file
@ -0,0 +1,25 @@
|
||||
From fdb8bd0fe7244b72ddc1c08e401ebddefdaf4f46 Mon Sep 17 00:00:00 2001
|
||||
From: Emil Renner Berthing <systemd@esmil.dk>
|
||||
Date: Thu, 18 Sep 2014 15:24:38 +0200
|
||||
Subject: [PATCH] include fcntl.h rather than sys/fcntl.h
|
||||
|
||||
---
|
||||
src/socket-proxy/socket-proxyd.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git src/socket-proxy/socket-proxyd.c src/socket-proxy/socket-proxyd.c
|
||||
index 81d8457..ff2b24f 100644
|
||||
--- src/socket-proxy/socket-proxyd.c
|
||||
+++ src/socket-proxy/socket-proxyd.c
|
||||
@@ -26,7 +26,7 @@
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <netdb.h>
|
||||
-#include <sys/fcntl.h>
|
||||
+#include <fcntl.h>
|
||||
#include <sys/socket.h>
|
||||
#include <sys/un.h>
|
||||
#include <unistd.h>
|
||||
--
|
||||
1.7.9.2
|
||||
|
@ -0,0 +1,39 @@
|
||||
Based on 141a1ceaa62578f1ed14f04cae2113dd0f49fd7f Mon Sep 17 00:00:00 2001
|
||||
From: Emil Renner Berthing <systemd@esmil.dk>
|
||||
Date: Thu, 18 Sep 2014 15:24:59 +0200
|
||||
Subject: [PATCH] mount: order options before other arguments to mount
|
||||
|
||||
---
|
||||
src/core/mount.c | 10 ++++++----
|
||||
1 file changed, 6 insertions(+), 4 deletions(-)
|
||||
|
||||
--- src/core/mount.c
|
||||
+++ src/core/mount.c 2014-09-19 10:13:51.638238597 +0000
|
||||
@@ -947,10 +947,11 @@ static void mount_enter_mounting(Mount *
|
||||
r = exec_command_set(
|
||||
m->control_command,
|
||||
"/bin/mount",
|
||||
- m->parameters_fragment.what,
|
||||
- m->where,
|
||||
+ "-n",
|
||||
"-t", m->parameters_fragment.fstype ? m->parameters_fragment.fstype : "auto",
|
||||
m->parameters_fragment.options ? "-o" : NULL, m->parameters_fragment.options,
|
||||
+ m->parameters_fragment.what,
|
||||
+ m->where,
|
||||
NULL);
|
||||
else
|
||||
r = -ENOENT;
|
||||
@@ -994,10 +995,11 @@ static void mount_enter_remounting(Mount
|
||||
r = exec_command_set(
|
||||
m->control_command,
|
||||
"/bin/mount",
|
||||
- m->parameters_fragment.what,
|
||||
- m->where,
|
||||
+ "-n",
|
||||
"-t", m->parameters_fragment.fstype ? m->parameters_fragment.fstype : "auto",
|
||||
"-o", o,
|
||||
+ m->parameters_fragment.what,
|
||||
+ m->where,
|
||||
NULL);
|
||||
} else
|
||||
r = -ENOENT;
|
106
0004-shared-wtmp-utmp-don-t-clear-store_wtmp-in-utmp_put_.patch
Normal file
106
0004-shared-wtmp-utmp-don-t-clear-store_wtmp-in-utmp_put_.patch
Normal file
@ -0,0 +1,106 @@
|
||||
From 863f3ce0d050f005839f6aa41fe7bac5478a7b5e Mon Sep 17 00:00:00 2001
|
||||
From: Tom Gundersen <teg@jklm.no>
|
||||
Date: Fri, 19 Sep 2014 08:03:31 +0200
|
||||
Subject: [PATCH] shared: wtmp-utmp - don't clear store_wtmp in
|
||||
utmp_put_dead_process()
|
||||
|
||||
Also modernize a few other things and add comments to explain CID #1237503
|
||||
and CID #1237504.
|
||||
---
|
||||
src/shared/utmp-wtmp.c | 28 ++++++++++++++--------------
|
||||
1 file changed, 14 insertions(+), 14 deletions(-)
|
||||
|
||||
diff --git src/shared/utmp-wtmp.c src/shared/utmp-wtmp.c
|
||||
index 30a0c03..31f13ec 100644
|
||||
--- src/shared/utmp-wtmp.c
|
||||
+++ src/shared/utmp-wtmp.c
|
||||
@@ -92,8 +92,6 @@ int utmp_get_runlevel(int *runlevel, int *previous) {
|
||||
static void init_timestamp(struct utmpx *store, usec_t t) {
|
||||
assert(store);
|
||||
|
||||
- zero(*store);
|
||||
-
|
||||
if (t <= 0)
|
||||
t = now(CLOCK_REALTIME);
|
||||
|
||||
@@ -143,7 +141,7 @@ static int write_entry_wtmp(const struct utmpx *store) {
|
||||
assert(store);
|
||||
|
||||
/* wtmp is a simple append-only file where each entry is
|
||||
- simply appended to * the end; i.e. basically a log. */
|
||||
+ simply appended to the end; i.e. basically a log. */
|
||||
|
||||
errno = 0;
|
||||
updwtmpx(_PATH_WTMPX, store);
|
||||
@@ -172,7 +170,7 @@ static int write_entry_both(const struct utmpx *store) {
|
||||
}
|
||||
|
||||
int utmp_put_shutdown(void) {
|
||||
- struct utmpx store;
|
||||
+ struct utmpx store = {};
|
||||
|
||||
init_entry(&store, 0);
|
||||
|
||||
@@ -183,7 +181,7 @@ int utmp_put_shutdown(void) {
|
||||
}
|
||||
|
||||
int utmp_put_reboot(usec_t t) {
|
||||
- struct utmpx store;
|
||||
+ struct utmpx store = {};
|
||||
|
||||
init_entry(&store, t);
|
||||
|
||||
@@ -206,16 +204,17 @@ _pure_ static const char *sanitize_id(const char *id) {
|
||||
}
|
||||
|
||||
int utmp_put_init_process(const char *id, pid_t pid, pid_t sid, const char *line) {
|
||||
- struct utmpx store;
|
||||
+ struct utmpx store = {
|
||||
+ .ut_type = INIT_PROCESS,
|
||||
+ .ut_pid = pid,
|
||||
+ .ut_session = sid,
|
||||
+ };
|
||||
|
||||
assert(id);
|
||||
|
||||
init_timestamp(&store, 0);
|
||||
|
||||
- store.ut_type = INIT_PROCESS;
|
||||
- store.ut_pid = pid;
|
||||
- store.ut_session = sid;
|
||||
-
|
||||
+ /* ut_id needs only be nul-terminated if it is shorter than sizeof(ut_id) */
|
||||
strncpy(store.ut_id, sanitize_id(id), sizeof(store.ut_id));
|
||||
|
||||
if (line)
|
||||
@@ -225,14 +224,15 @@ int utmp_put_init_process(const char *id, pid_t pid, pid_t sid, const char *line
|
||||
}
|
||||
|
||||
int utmp_put_dead_process(const char *id, pid_t pid, int code, int status) {
|
||||
- struct utmpx lookup, store, store_wtmp, *found;
|
||||
+ struct utmpx lookup = {
|
||||
+ .ut_type = INIT_PROCESS /* looks for DEAD_PROCESS, LOGIN_PROCESS, USER_PROCESS, too */
|
||||
+ }, store, store_wtmp, *found;
|
||||
|
||||
assert(id);
|
||||
|
||||
setutxent();
|
||||
|
||||
- zero(lookup);
|
||||
- lookup.ut_type = INIT_PROCESS; /* looks for DEAD_PROCESS, LOGIN_PROCESS, USER_PROCESS, too */
|
||||
+ /* ut_id needs only be nul-terminated if it is shorter than sizeof(ut_id) */
|
||||
strncpy(lookup.ut_id, sanitize_id(id), sizeof(lookup.ut_id));
|
||||
|
||||
found = getutxid(&lookup);
|
||||
@@ -260,7 +260,7 @@ int utmp_put_dead_process(const char *id, pid_t pid, int code, int status) {
|
||||
|
||||
|
||||
int utmp_put_runlevel(int runlevel, int previous) {
|
||||
- struct utmpx store;
|
||||
+ struct utmpx store = {};
|
||||
int r;
|
||||
|
||||
assert(runlevel > 0);
|
||||
--
|
||||
1.7.9.2
|
||||
|
24
0005-shared-label.h-add-missing-stdio.h-include.patch
Normal file
24
0005-shared-label.h-add-missing-stdio.h-include.patch
Normal file
@ -0,0 +1,24 @@
|
||||
From 45f15021e3524b04d574b9ff4e801cb3219daf3f Mon Sep 17 00:00:00 2001
|
||||
From: Emil Renner Berthing <systemd@esmil.dk>
|
||||
Date: Thu, 18 Sep 2014 15:24:42 +0200
|
||||
Subject: [PATCH] shared/label.h: add missing stdio.h include
|
||||
|
||||
---
|
||||
src/shared/label.h | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git src/shared/label.h src/shared/label.h
|
||||
index 7294820..cb2ec79 100644
|
||||
--- src/shared/label.h
|
||||
+++ src/shared/label.h
|
||||
@@ -24,6 +24,7 @@
|
||||
#include <sys/types.h>
|
||||
#include <stdbool.h>
|
||||
#include <sys/socket.h>
|
||||
+#include <stdio.h>
|
||||
|
||||
int label_init(const char *prefix);
|
||||
void label_finish(void);
|
||||
--
|
||||
1.7.9.2
|
||||
|
@ -0,0 +1,24 @@
|
||||
From 8e8af4cfc7fa373504a22e58966909161acfb72f Mon Sep 17 00:00:00 2001
|
||||
From: Emil Renner Berthing <systemd@esmil.dk>
|
||||
Date: Thu, 18 Sep 2014 15:24:43 +0200
|
||||
Subject: [PATCH] shared/sparse-endian.h: add missing byteswap.h include
|
||||
|
||||
---
|
||||
src/shared/sparse-endian.h | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git src/shared/sparse-endian.h src/shared/sparse-endian.h
|
||||
index eb4dbf3..c913fda 100644
|
||||
--- src/shared/sparse-endian.h
|
||||
+++ src/shared/sparse-endian.h
|
||||
@@ -21,6 +21,7 @@
|
||||
#ifndef SPARSE_ENDIAN_H
|
||||
#define SPARSE_ENDIAN_H
|
||||
|
||||
+#include <byteswap.h>
|
||||
#include <endian.h>
|
||||
#include <stdint.h>
|
||||
|
||||
--
|
||||
1.7.9.2
|
||||
|
73
1080-udevd-parse_argv-warn-if-argumens-are-invalid.patch
Normal file
73
1080-udevd-parse_argv-warn-if-argumens-are-invalid.patch
Normal file
@ -0,0 +1,73 @@
|
||||
Based on 6f5cf8a8b1de763383f7382821147e538b7dbd6d Mon Sep 17 00:00:00 2001
|
||||
From: Tom Gundersen <teg@jklm.no>
|
||||
Date: Thu, 18 Sep 2014 19:02:03 +0200
|
||||
Subject: [PATCH] udevd: parse_argv - warn if argumens are invalid
|
||||
|
||||
Found by Coverity. Fixes CID #1238780.
|
||||
---
|
||||
src/udev/udevd.c | 34 ++++++++++++++++++++++++++--------
|
||||
1 file changed, 26 insertions(+), 8 deletions(-)
|
||||
|
||||
--- src/udev/udevd.c
|
||||
+++ src/udev/udevd.c 2014-09-19 10:36:25.602735652 +0000
|
||||
@@ -1002,11 +1002,20 @@ static void kernel_cmdline_options(struc
|
||||
log_set_max_level(prio);
|
||||
udev_set_log_priority(udev, prio);
|
||||
} else if (startswith(opt, "udev.children-max=")) {
|
||||
- children_max = strtoul(opt + 18, NULL, 0);
|
||||
+ r = safe_atoi(opt + 18, &children_max);
|
||||
+ if (r < 0)
|
||||
+ log_warning("Invalid udev.children-max ignored: %s", opt + 18);
|
||||
} else if (startswith(opt, "udev.exec-delay=")) {
|
||||
- exec_delay = strtoul(opt + 16, NULL, 0);
|
||||
+ r = safe_atoi(opt + 16, &exec_delay);
|
||||
+ if (r < 0)
|
||||
+ log_warning("Invalid udev.exec-delay ignored: %s", opt + 16);
|
||||
} else if (startswith(opt, "udev.event-timeout=")) {
|
||||
- event_timeout_usec = strtoul(opt + 16, NULL, 0) * USEC_PER_SEC;
|
||||
+ r = safe_atou64(opt + 16, &event_timeout_usec);
|
||||
+ if (r < 0) {
|
||||
+ log_warning("Invalid udev.event-timeout ignored: %s", opt + 16);
|
||||
+ break;
|
||||
+ }
|
||||
+ event_timeout_usec *= USEC_PER_SEC;
|
||||
event_timeout_warn_usec = (event_timeout_usec / 3) ? : 1;
|
||||
}
|
||||
|
||||
@@ -1052,7 +1061,7 @@ int main(int argc, char *argv[]) {
|
||||
label_init("/dev");
|
||||
|
||||
for (;;) {
|
||||
- int option;
|
||||
+ int option, r;
|
||||
|
||||
option = getopt_long(argc, argv, "c:de:DtN:hV", options, NULL);
|
||||
if (option == -1)
|
||||
@@ -1063,14 +1072,23 @@ int main(int argc, char *argv[]) {
|
||||
daemonize = true;
|
||||
break;
|
||||
case 'c':
|
||||
- children_max = strtoul(optarg, NULL, 0);
|
||||
+ r = safe_atoi(optarg, &children_max);
|
||||
+ if (r < 0)
|
||||
+ log_warning("Invalid --children-max ignored: %s", optarg);
|
||||
break;
|
||||
case 'e':
|
||||
- exec_delay = strtoul(optarg, NULL, 0);
|
||||
+ r = safe_atoi(optarg, &exec_delay);
|
||||
+ if (r < 0)
|
||||
+ log_warning("Invalid --exec-delay ignored: %s", optarg);
|
||||
break;
|
||||
case 't':
|
||||
- event_timeout_usec = strtoul(optarg, NULL, 0) * USEC_PER_SEC;
|
||||
- event_timeout_warn_usec = (event_timeout_usec / 3) ? : 1;
|
||||
+ r = safe_atou64(optarg, &event_timeout_usec);
|
||||
+ if (r < 0)
|
||||
+ log_warning("Invalig --event-timeout ignored: %s", optarg);
|
||||
+ else {
|
||||
+ event_timeout_usec *= USEC_PER_SEC;
|
||||
+ event_timeout_warn_usec = (event_timeout_usec / 3) ? : 1;
|
||||
+ }
|
||||
break;
|
||||
case 'D':
|
||||
debug = true;
|
55
1081-udevd-check-return-of-various-functions.patch
Normal file
55
1081-udevd-check-return-of-various-functions.patch
Normal file
@ -0,0 +1,55 @@
|
||||
Based on d457ff8319b1e7c522c146f75e272f1226f4720c Mon Sep 17 00:00:00 2001
|
||||
From: Tom Gundersen <teg@jklm.no>
|
||||
Date: Thu, 18 Sep 2014 19:07:02 +0200
|
||||
Subject: [PATCH] udevd: check return of various functions
|
||||
|
||||
One reported by Coverity. Fixes CID #996252.
|
||||
---
|
||||
src/udev/udevd.c | 20 ++++++++++++++++----
|
||||
1 file changed, 16 insertions(+), 4 deletions(-)
|
||||
|
||||
--- src/udev/udevd.c
|
||||
+++ src/udev/udevd.c 2014-09-19 11:33:21.566236309 +0000
|
||||
@@ -1044,7 +1044,7 @@ int main(int argc, char *argv[]) {
|
||||
int fd_worker = -1;
|
||||
struct epoll_event ep_ctrl, ep_inotify, ep_signal, ep_netlink, ep_worker;
|
||||
struct udev_ctrl_connection *ctrl_conn = NULL;
|
||||
- int rc = 1;
|
||||
+ int rc = 1, r;
|
||||
|
||||
udev = udev_new();
|
||||
if (udev == NULL)
|
||||
@@ -1058,7 +1058,11 @@ int main(int argc, char *argv[]) {
|
||||
log_set_max_level(udev_get_log_priority(udev));
|
||||
|
||||
log_debug("version %s", VERSION);
|
||||
- label_init("/dev");
|
||||
+ r = label_init("/dev");
|
||||
+ if (r < 0) {
|
||||
+ log_error("could not initialize labelling: %s", strerror(-r));
|
||||
+ goto exit;
|
||||
+ }
|
||||
|
||||
for (;;) {
|
||||
int option, r;
|
||||
@@ -1137,10 +1141,18 @@ int main(int argc, char *argv[]) {
|
||||
}
|
||||
|
||||
/* set umask before creating any file/directory */
|
||||
- chdir("/");
|
||||
+ r = chdir("/");
|
||||
+ if (r < 0) {
|
||||
+ log_error("could not change dir to /: %m");
|
||||
+ goto exit;
|
||||
+ }
|
||||
umask(022);
|
||||
|
||||
- mkdir("/run/udev", 0755);
|
||||
+ r = mkdir("/run/udev", 0755);
|
||||
+ if (r < 0) {
|
||||
+ log_error("could not create /run/udev: %m");
|
||||
+ goto exit;
|
||||
+ }
|
||||
|
||||
dev_setup(NULL);
|
||||
|
45
1082-udevadm-hwdb-check-return-value-of-fseeko.patch
Normal file
45
1082-udevadm-hwdb-check-return-value-of-fseeko.patch
Normal file
@ -0,0 +1,45 @@
|
||||
From f901aaadd68050bc575c1c15b84f8f31fd4d494d Mon Sep 17 00:00:00 2001
|
||||
From: Tom Gundersen <teg@jklm.no>
|
||||
Date: Thu, 18 Sep 2014 19:16:54 +0200
|
||||
Subject: [PATCH] udevadm: hwdb - check return value of fseeko()
|
||||
|
||||
Fonud by Coverity. Fixes CID #996255.
|
||||
---
|
||||
src/udev/udevadm-hwdb.c | 14 ++++++++++++--
|
||||
1 file changed, 12 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git src/udev/udevadm-hwdb.c src/udev/udevadm-hwdb.c
|
||||
index 65cbf61..64273fb 100644
|
||||
--- src/udev/udevadm-hwdb.c
|
||||
+++ src/udev/udevadm-hwdb.c
|
||||
@@ -365,7 +365,12 @@ static int trie_store(struct trie *trie, const char *filename) {
|
||||
fchmod(fileno(t.f), 0444);
|
||||
|
||||
/* write nodes */
|
||||
- fseeko(t.f, sizeof(struct trie_header_f), SEEK_SET);
|
||||
+ err = fseeko(t.f, sizeof(struct trie_header_f), SEEK_SET);
|
||||
+ if (err < 0) {
|
||||
+ fclose(t.f);
|
||||
+ unlink_noerrno(filename_tmp);
|
||||
+ return -errno;
|
||||
+ }
|
||||
root_off = trie_store_nodes(&t, trie->root);
|
||||
h.nodes_root_off = htole64(root_off);
|
||||
pos = ftello(t.f);
|
||||
@@ -378,7 +383,12 @@ static int trie_store(struct trie *trie, const char *filename) {
|
||||
/* write header */
|
||||
size = ftello(t.f);
|
||||
h.file_size = htole64(size);
|
||||
- fseeko(t.f, 0, SEEK_SET);
|
||||
+ err = fseeko(t.f, 0, SEEK_SET);
|
||||
+ if (err < 0) {
|
||||
+ fclose(t.f);
|
||||
+ unlink_noerrno(filename_tmp);
|
||||
+ return -errno;
|
||||
+ }
|
||||
fwrite(&h, sizeof(struct trie_header_f), 1, t.f);
|
||||
err = ferror(t.f);
|
||||
if (err)
|
||||
--
|
||||
1.7.9.2
|
||||
|
34
1083-udev-node-warn-if-chmod-chown-fails.patch
Normal file
34
1083-udev-node-warn-if-chmod-chown-fails.patch
Normal file
@ -0,0 +1,34 @@
|
||||
From 543afdc63c02a5af3cf6bd2a264162f23474346a Mon Sep 17 00:00:00 2001
|
||||
From: Tom Gundersen <teg@jklm.no>
|
||||
Date: Thu, 18 Sep 2014 19:22:09 +0200
|
||||
Subject: [PATCH] udev: node - warn if chmod/chown fails
|
||||
|
||||
No functional change, just log the warning.
|
||||
|
||||
Fonud by Coverity. Fixes CID #1237544.
|
||||
---
|
||||
src/udev/udev-node.c | 8 ++++++--
|
||||
1 file changed, 6 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git src/udev/udev-node.c src/udev/udev-node.c
|
||||
index c164603..8ef7889 100644
|
||||
--- src/udev/udev-node.c
|
||||
+++ src/udev/udev-node.c
|
||||
@@ -281,8 +281,12 @@ static int node_permissions_apply(struct udev_device *dev, bool apply,
|
||||
|
||||
if ((stats.st_mode & 0777) != (mode & 0777) || stats.st_uid != uid || stats.st_gid != gid) {
|
||||
log_debug("set permissions %s, %#o, uid=%u, gid=%u", devnode, mode, uid, gid);
|
||||
- chmod(devnode, mode);
|
||||
- chown(devnode, uid, gid);
|
||||
+ err = chmod(devnode, mode);
|
||||
+ if (err < 0)
|
||||
+ log_warning("setting mode of %s to %#o failed: %m", devnode, mode);
|
||||
+ err = chown(devnode, uid, gid);
|
||||
+ if (err < 0)
|
||||
+ log_warning("setting owner of %s to uid=%u, gid=%u failed: %m", devnode, uid, gid);
|
||||
} else {
|
||||
log_debug("preserve permissions %s, %#o, uid=%u, gid=%u", devnode, mode, uid, gid);
|
||||
}
|
||||
--
|
||||
1.7.9.2
|
||||
|
45
1084-udev-ctrl-log-if-setting-SO_PASSCRED-fails.patch
Normal file
45
1084-udev-ctrl-log-if-setting-SO_PASSCRED-fails.patch
Normal file
@ -0,0 +1,45 @@
|
||||
Based on 4bbdff757ed4e718a3348b93439a03055cc5e3bc Mon Sep 17 00:00:00 2001
|
||||
From: Tom Gundersen <teg@jklm.no>
|
||||
Date: Thu, 18 Sep 2014 19:26:11 +0200
|
||||
Subject: [PATCH] udev: ctrl - log if setting SO_PASSCRED fails
|
||||
|
||||
No functional change.
|
||||
|
||||
Found by Coverity. Fixes CID #1237533.
|
||||
---
|
||||
src/udev/udev-ctrl.c | 10 ++++++++--
|
||||
1 file changed, 8 insertions(+), 2 deletions(-)
|
||||
|
||||
--- src/udev/udev-ctrl.c
|
||||
+++ src/udev/udev-ctrl.c 2014-09-19 10:45:55.494236229 +0000
|
||||
@@ -74,6 +74,7 @@ struct udev_ctrl *udev_ctrl_new_from_fd(
|
||||
{
|
||||
struct udev_ctrl *uctrl;
|
||||
const int on = 1;
|
||||
+ int r;
|
||||
|
||||
uctrl = new0(struct udev_ctrl, 1);
|
||||
if (uctrl == NULL)
|
||||
@@ -92,7 +93,9 @@ struct udev_ctrl *udev_ctrl_new_from_fd(
|
||||
uctrl->bound = true;
|
||||
uctrl->sock = fd;
|
||||
}
|
||||
- setsockopt(uctrl->sock, SOL_SOCKET, SO_PASSCRED, &on, sizeof(on));
|
||||
+ r = setsockopt(uctrl->sock, SOL_SOCKET, SO_PASSCRED, &on, sizeof(on));
|
||||
+ if (r < 0)
|
||||
+ log_warning("could not set SO_PASSCRED: %m");
|
||||
|
||||
uctrl->saddr.sun_family = AF_LOCAL;
|
||||
strscpy(uctrl->saddr.sun_path, sizeof(uctrl->saddr.sun_path), "/run/udev/control");
|
||||
@@ -209,7 +212,10 @@ struct udev_ctrl_connection *udev_ctrl_g
|
||||
}
|
||||
|
||||
/* enable receiving of the sender credentials in the messages */
|
||||
- setsockopt(conn->sock, SOL_SOCKET, SO_PASSCRED, &on, sizeof(on));
|
||||
+ r = setsockopt(conn->sock, SOL_SOCKET, SO_PASSCRED, &on, sizeof(on));
|
||||
+ if (r < 0)
|
||||
+ log_warning("colud not set SO_PASSCRED: %m");
|
||||
+
|
||||
udev_ctrl_ref(uctrl);
|
||||
return conn;
|
||||
err:
|
33
1085-udev-fix-typos.patch
Normal file
33
1085-udev-fix-typos.patch
Normal file
@ -0,0 +1,33 @@
|
||||
Based on 65fea570f03df51dadc06a3e0d261a71fe62aa01 Mon Sep 17 00:00:00 2001
|
||||
From: Tom Gundersen <teg@jklm.no>
|
||||
Date: Thu, 18 Sep 2014 20:25:33 +0200
|
||||
Subject: [PATCH] udev: fix typos
|
||||
|
||||
Spotted by Andreas Henriksson.
|
||||
---
|
||||
src/udev/udev-ctrl.c | 2 +-
|
||||
src/udev/udevd.c | 2 +-
|
||||
2 files changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
--- src/udev/udev-ctrl.c
|
||||
+++ src/udev/udev-ctrl.c 2014-09-19 00:00:00.000000000 +0000
|
||||
@@ -214,7 +214,7 @@ struct udev_ctrl_connection *udev_ctrl_g
|
||||
/* enable receiving of the sender credentials in the messages */
|
||||
r = setsockopt(conn->sock, SOL_SOCKET, SO_PASSCRED, &on, sizeof(on));
|
||||
if (r < 0)
|
||||
- log_warning("colud not set SO_PASSCRED: %m");
|
||||
+ log_warning("could not set SO_PASSCRED: %m");
|
||||
|
||||
udev_ctrl_ref(uctrl);
|
||||
return conn;
|
||||
--- src/udev/udevd.c
|
||||
+++ src/udev/udevd.c 2014-09-19 10:47:36.306235720 +0000
|
||||
@@ -1088,7 +1088,7 @@ int main(int argc, char *argv[]) {
|
||||
case 't':
|
||||
r = safe_atou64(optarg, &event_timeout_usec);
|
||||
if (r < 0)
|
||||
- log_warning("Invalig --event-timeout ignored: %s", optarg);
|
||||
+ log_warning("Invalid --event-timeout ignored: %s", optarg);
|
||||
else {
|
||||
event_timeout_usec *= USEC_PER_SEC;
|
||||
event_timeout_warn_usec = (event_timeout_usec / 3) ? : 1;
|
25
1086-udevd-don-t-fail-if-run-udev-exists.patch
Normal file
25
1086-udevd-don-t-fail-if-run-udev-exists.patch
Normal file
@ -0,0 +1,25 @@
|
||||
From 25773e7fc59b4ce53d67da4e18bfe4d13ab0b14b Mon Sep 17 00:00:00 2001
|
||||
From: Tom Gundersen <teg@jklm.no>
|
||||
Date: Thu, 18 Sep 2014 21:57:49 +0200
|
||||
Subject: [PATCH] udevd: don't fail if /run/udev exists
|
||||
|
||||
---
|
||||
src/udev/udevd.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git src/udev/udevd.c src/udev/udevd.c
|
||||
index 37db81c..29ccb51 100644
|
||||
--- src/udev/udevd.c
|
||||
+++ src/udev/udevd.c
|
||||
@@ -1155,7 +1155,7 @@ int main(int argc, char *argv[]) {
|
||||
umask(022);
|
||||
|
||||
r = mkdir("/run/udev", 0755);
|
||||
- if (r < 0) {
|
||||
+ if (r < 0 && errno != EEXIST) {
|
||||
log_error("could not create /run/udev: %m");
|
||||
goto exit;
|
||||
}
|
||||
--
|
||||
1.7.9.2
|
||||
|
@ -1,3 +1,21 @@
|
||||
-------------------------------------------------------------------
|
||||
Fri Sep 19 11:36:48 UTC 2014 - werner@suse.de
|
||||
|
||||
- Add upstream bugfix patches
|
||||
0001-journal-Do-not-count-on-the-compiler-initializing-fo.patch
|
||||
0002-include-fcntl.h-rather-than-sys-fcntl.h.patch
|
||||
0003-mount-order-options-before-other-arguments-to-mount.patch
|
||||
0004-shared-wtmp-utmp-don-t-clear-store_wtmp-in-utmp_put_.patch
|
||||
0005-shared-label.h-add-missing-stdio.h-include.patch
|
||||
0006-shared-sparse-endian.h-add-missing-byteswap.h-includ.patch
|
||||
1080-udevd-parse_argv-warn-if-argumens-are-invalid.patch
|
||||
1081-udevd-check-return-of-various-functions.patch
|
||||
1082-udevadm-hwdb-check-return-value-of-fseeko.patch
|
||||
1083-udev-node-warn-if-chmod-chown-fails.patch
|
||||
1084-udev-ctrl-log-if-setting-SO_PASSCRED-fails.patch
|
||||
1085-udev-fix-typos.patch
|
||||
1086-udevd-don-t-fail-if-run-udev-exists.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Sep 18 13:21:45 UTC 2014 - werner@suse.de
|
||||
|
||||
|
@ -874,6 +874,18 @@ Patch421: 0007-libudev-monitor-warn-if-we-fail-to-request-SO_PASSCR.patch
|
||||
Patch422: 0008-shared-conf-parser-don-t-leak-memory-on-error-in-DEF.patch
|
||||
# PATCH-FIX-UPSTREAM added at 2014/09/18 -- Be aware that the size of the type bool may vary
|
||||
Patch423: 0009-bus-fix-bus_print_property-to-use-int-for-booleans.patch
|
||||
# PATCH-FIX-UPSTREAM added at 2014/09/19
|
||||
Patch424: 0001-journal-Do-not-count-on-the-compiler-initializing-fo.patch
|
||||
# PATCH-FIX-UPSTREAM added at 2014/09/19
|
||||
Patch425: 0002-include-fcntl.h-rather-than-sys-fcntl.h.patch
|
||||
# PATCH-FIX-UPSTREAM added at 2014/09/19
|
||||
Patch426: 0003-mount-order-options-before-other-arguments-to-mount.patch
|
||||
# PATCH-FIX-UPSTREAM added at 2014/09/19
|
||||
Patch427: 0004-shared-wtmp-utmp-don-t-clear-store_wtmp-in-utmp_put_.patch
|
||||
# PATCH-FIX-UPSTREAM added at 2014/09/19
|
||||
Patch428: 0005-shared-label.h-add-missing-stdio.h-include.patch
|
||||
# PATCH-FIX-UPSTREAM added at 2014/09/19
|
||||
Patch429: 0006-shared-sparse-endian.h-add-missing-byteswap.h-includ.patch
|
||||
|
||||
# UDEV PATCHES
|
||||
# ============
|
||||
@ -1039,6 +1051,20 @@ Patch1077: 1077-udev-timeout-warn-after-a-third-of-the-timeout-befor.patch
|
||||
Patch1078: 1078-udev-remove-userspace-firmware-loading-support.patch
|
||||
# PATCH-FIX-UPSTREAM 1079-udev-remove-userspace-firmware-loading-support.patch
|
||||
Patch1079: 1079-udev-remove-userspace-firmware-loading-support.patch
|
||||
# PATCH-FIX-UPSTREAM 1080-udevd-parse_argv-warn-if-argumens-are-invalid.patch
|
||||
Patch1080: 1080-udevd-parse_argv-warn-if-argumens-are-invalid.patch
|
||||
# PATCH-FIX-UPSTREAM 1081-udevd-check-return-of-various-functions.patch
|
||||
Patch1081: 1081-udevd-check-return-of-various-functions.patch
|
||||
# PATCH-FIX-UPSTREAM 1082-udevadm-hwdb-check-return-value-of-fseeko.patch
|
||||
Patch1082: 1082-udevadm-hwdb-check-return-value-of-fseeko.patch
|
||||
# PATCH-FIX-UPSTREAM 1083-udev-node-warn-if-chmod-chown-fails.patch
|
||||
Patch1083: 1083-udev-node-warn-if-chmod-chown-fails.patch
|
||||
# PATCH-FIX-UPSTREAM 1084-udev-ctrl-log-if-setting-SO_PASSCRED-fails.patch
|
||||
Patch1084: 1084-udev-ctrl-log-if-setting-SO_PASSCRED-fails.patch
|
||||
# PATCH-FIX-UPSTREAM 1085-udev-fix-typos.patch
|
||||
Patch1085: 1085-udev-fix-typos.patch
|
||||
# PATCH-FIX-UPSTREAM 1085-udevd-don-t-fail-if-run-udev-exists.patch
|
||||
Patch1086: 1086-udevd-don-t-fail-if-run-udev-exists.patch
|
||||
|
||||
%description
|
||||
Systemd is a system and service manager, compatible with SysV and LSB
|
||||
@ -1623,6 +1649,12 @@ cp %{SOURCE7} m4/
|
||||
%patch421 -p0
|
||||
%patch422 -p0
|
||||
%patch423 -p0
|
||||
%patch424 -p0
|
||||
%patch425 -p0
|
||||
%patch426 -p0
|
||||
%patch427 -p0
|
||||
%patch428 -p0
|
||||
%patch429 -p0
|
||||
|
||||
# udev patches
|
||||
%patch1001 -p1
|
||||
@ -1733,6 +1765,13 @@ cp %{SOURCE7} m4/
|
||||
%patch1078 -p1
|
||||
%endif
|
||||
%endif
|
||||
%patch1080 -p0
|
||||
%patch1081 -p0
|
||||
%patch1082 -p0
|
||||
%patch1083 -p0
|
||||
%patch1084 -p0
|
||||
%patch1085 -p0
|
||||
%patch1086 -p0
|
||||
|
||||
# remove patch backups
|
||||
find -name '*.orig' -exec rm -f '{}' \+
|
||||
|
@ -1,3 +1,21 @@
|
||||
-------------------------------------------------------------------
|
||||
Fri Sep 19 11:36:48 UTC 2014 - werner@suse.de
|
||||
|
||||
- Add upstream bugfix patches
|
||||
0001-journal-Do-not-count-on-the-compiler-initializing-fo.patch
|
||||
0002-include-fcntl.h-rather-than-sys-fcntl.h.patch
|
||||
0003-mount-order-options-before-other-arguments-to-mount.patch
|
||||
0004-shared-wtmp-utmp-don-t-clear-store_wtmp-in-utmp_put_.patch
|
||||
0005-shared-label.h-add-missing-stdio.h-include.patch
|
||||
0006-shared-sparse-endian.h-add-missing-byteswap.h-includ.patch
|
||||
1080-udevd-parse_argv-warn-if-argumens-are-invalid.patch
|
||||
1081-udevd-check-return-of-various-functions.patch
|
||||
1082-udevadm-hwdb-check-return-value-of-fseeko.patch
|
||||
1083-udev-node-warn-if-chmod-chown-fails.patch
|
||||
1084-udev-ctrl-log-if-setting-SO_PASSCRED-fails.patch
|
||||
1085-udev-fix-typos.patch
|
||||
1086-udevd-don-t-fail-if-run-udev-exists.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Sep 18 13:21:45 UTC 2014 - werner@suse.de
|
||||
|
||||
|
39
systemd.spec
39
systemd.spec
@ -869,6 +869,18 @@ Patch421: 0007-libudev-monitor-warn-if-we-fail-to-request-SO_PASSCR.patch
|
||||
Patch422: 0008-shared-conf-parser-don-t-leak-memory-on-error-in-DEF.patch
|
||||
# PATCH-FIX-UPSTREAM added at 2014/09/18 -- Be aware that the size of the type bool may vary
|
||||
Patch423: 0009-bus-fix-bus_print_property-to-use-int-for-booleans.patch
|
||||
# PATCH-FIX-UPSTREAM added at 2014/09/19
|
||||
Patch424: 0001-journal-Do-not-count-on-the-compiler-initializing-fo.patch
|
||||
# PATCH-FIX-UPSTREAM added at 2014/09/19
|
||||
Patch425: 0002-include-fcntl.h-rather-than-sys-fcntl.h.patch
|
||||
# PATCH-FIX-UPSTREAM added at 2014/09/19
|
||||
Patch426: 0003-mount-order-options-before-other-arguments-to-mount.patch
|
||||
# PATCH-FIX-UPSTREAM added at 2014/09/19
|
||||
Patch427: 0004-shared-wtmp-utmp-don-t-clear-store_wtmp-in-utmp_put_.patch
|
||||
# PATCH-FIX-UPSTREAM added at 2014/09/19
|
||||
Patch428: 0005-shared-label.h-add-missing-stdio.h-include.patch
|
||||
# PATCH-FIX-UPSTREAM added at 2014/09/19
|
||||
Patch429: 0006-shared-sparse-endian.h-add-missing-byteswap.h-includ.patch
|
||||
|
||||
# UDEV PATCHES
|
||||
# ============
|
||||
@ -1034,6 +1046,20 @@ Patch1077: 1077-udev-timeout-warn-after-a-third-of-the-timeout-befor.patch
|
||||
Patch1078: 1078-udev-remove-userspace-firmware-loading-support.patch
|
||||
# PATCH-FIX-UPSTREAM 1079-udev-remove-userspace-firmware-loading-support.patch
|
||||
Patch1079: 1079-udev-remove-userspace-firmware-loading-support.patch
|
||||
# PATCH-FIX-UPSTREAM 1080-udevd-parse_argv-warn-if-argumens-are-invalid.patch
|
||||
Patch1080: 1080-udevd-parse_argv-warn-if-argumens-are-invalid.patch
|
||||
# PATCH-FIX-UPSTREAM 1081-udevd-check-return-of-various-functions.patch
|
||||
Patch1081: 1081-udevd-check-return-of-various-functions.patch
|
||||
# PATCH-FIX-UPSTREAM 1082-udevadm-hwdb-check-return-value-of-fseeko.patch
|
||||
Patch1082: 1082-udevadm-hwdb-check-return-value-of-fseeko.patch
|
||||
# PATCH-FIX-UPSTREAM 1083-udev-node-warn-if-chmod-chown-fails.patch
|
||||
Patch1083: 1083-udev-node-warn-if-chmod-chown-fails.patch
|
||||
# PATCH-FIX-UPSTREAM 1084-udev-ctrl-log-if-setting-SO_PASSCRED-fails.patch
|
||||
Patch1084: 1084-udev-ctrl-log-if-setting-SO_PASSCRED-fails.patch
|
||||
# PATCH-FIX-UPSTREAM 1085-udev-fix-typos.patch
|
||||
Patch1085: 1085-udev-fix-typos.patch
|
||||
# PATCH-FIX-UPSTREAM 1085-udevd-don-t-fail-if-run-udev-exists.patch
|
||||
Patch1086: 1086-udevd-don-t-fail-if-run-udev-exists.patch
|
||||
|
||||
%description
|
||||
Systemd is a system and service manager, compatible with SysV and LSB
|
||||
@ -1618,6 +1644,12 @@ cp %{SOURCE7} m4/
|
||||
%patch421 -p0
|
||||
%patch422 -p0
|
||||
%patch423 -p0
|
||||
%patch424 -p0
|
||||
%patch425 -p0
|
||||
%patch426 -p0
|
||||
%patch427 -p0
|
||||
%patch428 -p0
|
||||
%patch429 -p0
|
||||
|
||||
# udev patches
|
||||
%patch1001 -p1
|
||||
@ -1728,6 +1760,13 @@ cp %{SOURCE7} m4/
|
||||
%patch1078 -p1
|
||||
%endif
|
||||
%endif
|
||||
%patch1080 -p0
|
||||
%patch1081 -p0
|
||||
%patch1082 -p0
|
||||
%patch1083 -p0
|
||||
%patch1084 -p0
|
||||
%patch1085 -p0
|
||||
%patch1086 -p0
|
||||
|
||||
# remove patch backups
|
||||
find -name '*.orig' -exec rm -f '{}' \+
|
||||
|
Loading…
Reference in New Issue
Block a user