summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/journal/coredumpctl.c3
-rw-r--r--src/journal/journald-native.c9
-rw-r--r--src/login/logind-acl.c2
-rw-r--r--src/login/logind-session.h2
4 files changed, 7 insertions, 9 deletions
diff --git a/src/journal/coredumpctl.c b/src/journal/coredumpctl.c
index d1450c09a2..e5f4d4571a 100644
--- a/src/journal/coredumpctl.c
+++ b/src/journal/coredumpctl.c
@@ -131,11 +131,10 @@ static int add_match(Set *set, const char *match) {
goto fail;
log_debug("Adding pattern: %s", pattern);
- r = set_put(set, pattern);
+ r = set_consume(set, pattern);
if (r < 0) {
log_error("Failed to add pattern '%s': %s",
pattern, strerror(-r));
- free(pattern);
goto fail;
}
diff --git a/src/journal/journald-native.c b/src/journal/journald-native.c
index 0f3936a146..d73280c8cf 100644
--- a/src/journal/journald-native.c
+++ b/src/journal/journald-native.c
@@ -383,12 +383,15 @@ void server_process_native_file(
}
int server_open_native_socket(Server*s) {
- union sockaddr_union sa;
int one, r;
assert(s);
if (s->native_fd < 0) {
+ union sockaddr_union sa = {
+ .un.sun_family = AF_UNIX,
+ .un.sun_path = "/run/systemd/journal/socket",
+ };
s->native_fd = socket(AF_UNIX, SOCK_DGRAM|SOCK_CLOEXEC|SOCK_NONBLOCK, 0);
if (s->native_fd < 0) {
@@ -396,10 +399,6 @@ int server_open_native_socket(Server*s) {
return -errno;
}
- zero(sa);
- sa.un.sun_family = AF_UNIX;
- strncpy(sa.un.sun_path, "/run/systemd/journal/socket", sizeof(sa.un.sun_path));
-
unlink(sa.un.sun_path);
r = bind(s->native_fd, &sa.sa, offsetof(union sockaddr_union, un.sun_path) + strlen(sa.un.sun_path));
diff --git a/src/login/logind-acl.c b/src/login/logind-acl.c
index af7c352ce5..b76e16d906 100644
--- a/src/login/logind-acl.c
+++ b/src/login/logind-acl.c
@@ -284,7 +284,7 @@ int devnode_acl_all(struct udev *udev,
k = devnode_acl(n, flush, del, old_uid, add, new_uid);
if (k == -ENOENT)
log_debug("Device %s disappeared while setting ACLs", n);
- else if (k < 0)
+ else if (k < 0 && r == 0)
r = k;
}
diff --git a/src/login/logind-session.h b/src/login/logind-session.h
index 81957dfa78..e62b76d66f 100644
--- a/src/login/logind-session.h
+++ b/src/login/logind-session.h
@@ -72,7 +72,7 @@ enum KillWho {
struct Session {
Manager *manager;
- char *id;
+ const char *id;
unsigned int pos;
SessionType type;
SessionClass class;