chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Add a snprinf wrapper which checks that the buffer was big enough
[elogind.git]
/
src
/
core
/
socket.c
diff --git
a/src/core/socket.c
b/src/core/socket.c
index 96fe2d4a416a7f213dc6765bfec1c0e15dd79729..85f7f16e15360cbe4dcefc49948c9882652d1553 100644
(file)
--- a/
src/core/socket.c
+++ b/
src/core/socket.c
@@
-48,6
+48,7
@@
#include "smack-util.h"
#include "bus-util.h"
#include "bus-error.h"
#include "smack-util.h"
#include "bus-util.h"
#include "bus-error.h"
+#include "selinux-util.h"
#include "dbus-socket.h"
#include "unit.h"
#include "socket.h"
#include "dbus-socket.h"
#include "unit.h"
#include "socket.h"
@@
-925,13
+926,13
@@
static void socket_apply_socket_options(Socket *s, int fd) {
if (s->smack_ip_in) {
r = mac_smack_apply_ip_in_fd(fd, s->smack_ip_in);
if (r < 0)
if (s->smack_ip_in) {
r = mac_smack_apply_ip_in_fd(fd, s->smack_ip_in);
if (r < 0)
- log_unit_error
(UNIT(s)->id, "mac_smack_apply_ip_in_fd: %s", strerror(-r)
);
+ log_unit_error
_errno(UNIT(s)->id, r, "mac_smack_apply_ip_in_fd: %m"
);
}
if (s->smack_ip_out) {
r = mac_smack_apply_ip_out_fd(fd, s->smack_ip_out);
if (r < 0)
}
if (s->smack_ip_out) {
r = mac_smack_apply_ip_out_fd(fd, s->smack_ip_out);
if (r < 0)
- log_unit_error
(UNIT(s)->id, "mac_smack_apply_ip_out_fd: %s", strerror(-r)
);
+ log_unit_error
_errno(UNIT(s)->id, r, "mac_smack_apply_ip_out_fd: %m"
);
}
}
}
}
@@
-948,7
+949,7
@@
static void socket_apply_fifo_options(Socket *s, int fd) {
if (s->smack) {
r = mac_smack_apply_fd(fd, s->smack);
if (r < 0)
if (s->smack) {
r = mac_smack_apply_fd(fd, s->smack);
if (r < 0)
- log_unit_error
(UNIT(s)->id, "mac_smack_apply_fd: %s", strerror(-r)
);
+ log_unit_error
_errno(UNIT(s)->id, r, "mac_smack_apply_fd: %m"
);
}
}
}
}
@@
-1269,7
+1270,7
@@
static int socket_watch_fds(Socket *s) {
r = sd_event_add_io(UNIT(s)->manager->event, &p->event_source, p->fd, EPOLLIN, socket_dispatch_io, p);
if (r < 0) {
r = sd_event_add_io(UNIT(s)->manager->event, &p->event_source, p->fd, EPOLLIN, socket_dispatch_io, p);
if (r < 0) {
- log_unit_warning
(UNIT(s)->id, "Failed to watch listening fds: %s", strerror(-r)
);
+ log_unit_warning
_errno(UNIT(s)->id, r, "Failed to watch listening fds: %m"
);
goto fail;
}
}
goto fail;
}
}
@@
-1456,8
+1457,8
@@
static int socket_chown(Socket *s, pid_t *_pid) {
if (pid == 0) {
SocketPort *p;
if (pid == 0) {
SocketPort *p;
- uid_t uid =
(uid_t) -1
;
- gid_t gid =
(gid_t) -1
;
+ uid_t uid =
UID_INVALID
;
+ gid_t gid =
GID_INVALID
;
int ret;
default_signals(SIGNALS_CRASH_HANDLER, SIGNALS_IGNORE, -1);
int ret;
default_signals(SIGNALS_CRASH_HANDLER, SIGNALS_IGNORE, -1);
@@
-1506,7
+1507,7
@@
static int socket_chown(Socket *s, pid_t *_pid) {
fail_child:
log_open();
fail_child:
log_open();
- log_error
("Failed to chown socket at step %s: %s", exit_status_to_string(ret, EXIT_STATUS_SYSTEMD), strerror(-r
));
+ log_error
_errno(r, "Failed to chown socket at step %s: %m", exit_status_to_string(ret, EXIT_STATUS_SYSTEMD
));
_exit(ret);
}
_exit(ret);
}
@@
-1605,7
+1606,7
@@
static void socket_enter_signal(Socket *s, SocketState state, SocketResult f) {
return;
fail:
return;
fail:
- log_unit_warning
(UNIT(s)->id, "%s failed to kill processes: %s", UNIT(s)->id, strerror(-r)
);
+ log_unit_warning
_errno(UNIT(s)->id, r, "%s failed to kill processes: %m", UNIT(s)->id
);
if (state == SOCKET_STOP_PRE_SIGTERM || state == SOCKET_STOP_PRE_SIGKILL)
socket_enter_stop_post(s, SOCKET_FAILURE_RESOURCES);
if (state == SOCKET_STOP_PRE_SIGTERM || state == SOCKET_STOP_PRE_SIGKILL)
socket_enter_stop_post(s, SOCKET_FAILURE_RESOURCES);
@@
-1636,7
+1637,7
@@
static void socket_enter_stop_pre(Socket *s, SocketResult f) {
return;
fail:
return;
fail:
- log_unit_warning
(UNIT(s)->id, "%s failed to run 'stop-pre' task: %s", UNIT(s)->id, strerror(-r)
);
+ log_unit_warning
_errno(UNIT(s)->id, r, "%s failed to run 'stop-pre' task: %m", UNIT(s)->id
);
socket_enter_stop_post(s, SOCKET_FAILURE_RESOURCES);
}
socket_enter_stop_post(s, SOCKET_FAILURE_RESOURCES);
}
@@
-1646,7
+1647,7
@@
static void socket_enter_listening(Socket *s) {
r = socket_watch_fds(s);
if (r < 0) {
r = socket_watch_fds(s);
if (r < 0) {
- log_unit_warning
(UNIT(s)->id, "%s failed to watch sockets: %s", UNIT(s)->id, strerror(-r)
);
+ log_unit_warning
_errno(UNIT(s)->id, r, "%s failed to watch sockets: %m", UNIT(s)->id
);
goto fail;
}
goto fail;
}
@@
-1668,7
+1669,7
@@
static void socket_enter_start_post(Socket *s) {
if (s->control_command) {
r = socket_spawn(s, s->control_command, &s->control_pid);
if (r < 0) {
if (s->control_command) {
r = socket_spawn(s, s->control_command, &s->control_pid);
if (r < 0) {
- log_unit_warning
(UNIT(s)->id, "%s failed to run 'start-post' task: %s", UNIT(s)->id, strerror(-r)
);
+ log_unit_warning
_errno(UNIT(s)->id, r, "%s failed to run 'start-post' task: %m", UNIT(s)->id
);
goto fail;
}
goto fail;
}
@@
-1689,7
+1690,7
@@
static void socket_enter_start_chown(Socket *s) {
r = socket_open_fds(s);
if (r < 0) {
r = socket_open_fds(s);
if (r < 0) {
- log_unit_warning
(UNIT(s)->id, "%s failed to listen on sockets: %s", UNIT(s)->id, strerror(-r)
);
+ log_unit_warning
_errno(UNIT(s)->id, r, "%s failed to listen on sockets: %m", UNIT(s)->id
);
goto fail;
}
goto fail;
}
@@
-1701,7
+1702,7
@@
static void socket_enter_start_chown(Socket *s) {
r = socket_chown(s, &s->control_pid);
if (r < 0) {
r = socket_chown(s, &s->control_pid);
if (r < 0) {
- log_unit_warning
(UNIT(s)->id, "%s failed to fork 'start-chown' task: %s", UNIT(s)->id, strerror(-r)
);
+ log_unit_warning
_errno(UNIT(s)->id, r, "%s failed to fork 'start-chown' task: %m", UNIT(s)->id
);
goto fail;
}
goto fail;
}
@@
-1726,7
+1727,7
@@
static void socket_enter_start_pre(Socket *s) {
if (s->control_command) {
r = socket_spawn(s, s->control_command, &s->control_pid);
if (r < 0) {
if (s->control_command) {
r = socket_spawn(s, s->control_command, &s->control_pid);
if (r < 0) {
- log_unit_warning
(UNIT(s)->id, "%s failed to run 'start-pre' task: %s", UNIT(s)->id, strerror(-r)
);
+ log_unit_warning
_errno(UNIT(s)->id, r, "%s failed to run 'start-pre' task: %m", UNIT(s)->id
);
goto fail;
}
goto fail;
}
@@
-1760,14
+1761,14
@@
static void socket_enter_running(Socket *s, int cfd) {
r = socket_open_fds(s);
if (r < 0) {
r = socket_open_fds(s);
if (r < 0) {
- log_unit_warning
(UNIT(s)->id, "%s failed to listen on sockets: %s", UNIT(s)->id, strerror(-r)
);
+ log_unit_warning
_errno(UNIT(s)->id, r, "%s failed to listen on sockets: %m", UNIT(s)->id
);
socket_enter_stop_pre(s, SOCKET_FAILURE_RESOURCES);
return;
}
r = socket_watch_fds(s);
if (r < 0) {
socket_enter_stop_pre(s, SOCKET_FAILURE_RESOURCES);
return;
}
r = socket_watch_fds(s);
if (r < 0) {
- log_unit_warning
(UNIT(s)->id, "%s failed to watch sockets: %s", UNIT(s)->id, strerror(-r)
);
+ log_unit_warning
_errno(UNIT(s)->id, r, "%s failed to watch sockets: %m", UNIT(s)->id
);
socket_enter_stop_pre(s, SOCKET_FAILURE_RESOURCES);
}
}
socket_enter_stop_pre(s, SOCKET_FAILURE_RESOURCES);
}
}
@@
-1894,7
+1895,7
@@
static void socket_run_next(Socket *s) {
return;
fail:
return;
fail:
- log_unit_warning
(UNIT(s)->id, "%s failed to run next task: %s", UNIT(s)->id, strerror(-r)
);
+ log_unit_warning
_errno(UNIT(s)->id, r, "%s failed to run next task: %m", UNIT(s)->id
);
if (s->state == SOCKET_START_POST)
socket_enter_stop_pre(s, SOCKET_FAILURE_RESOURCES);
if (s->state == SOCKET_START_POST)
socket_enter_stop_pre(s, SOCKET_FAILURE_RESOURCES);
@@
-1953,7
+1954,7
@@
static int socket_start(Unit *u) {
s->result = SOCKET_SUCCESS;
socket_enter_start_pre(s);
s->result = SOCKET_SUCCESS;
socket_enter_start_pre(s);
- return
0
;
+ return
1
;
}
static int socket_stop(Unit *u) {
}
static int socket_stop(Unit *u) {
@@
-1984,7
+1985,7
@@
static int socket_stop(Unit *u) {
assert(s->state == SOCKET_LISTENING || s->state == SOCKET_RUNNING);
socket_enter_stop_pre(s, SOCKET_SUCCESS);
assert(s->state == SOCKET_LISTENING || s->state == SOCKET_RUNNING);
socket_enter_stop_pre(s, SOCKET_SUCCESS);
- return
0
;
+ return
1
;
}
static int socket_serialize(Unit *u, FILE *f, FDSet *fds) {
}
static int socket_serialize(Unit *u, FILE *f, FDSet *fds) {