chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
bus-creds: always set SD_BUS_CREDS_PID when we set pid in the mask
[elogind.git]
/
src
/
libelogind
/
sd-bus
/
bus-socket.c
diff --git
a/src/libelogind/sd-bus/bus-socket.c
b/src/libelogind/sd-bus/bus-socket.c
index 873aede65e07e57432c0bebaf4c1d7fa3eec9bf0..881efb176a4b2a4a59bc8a46376aef3d94b45ae0 100644
(file)
--- a/
src/libelogind/sd-bus/bus-socket.c
+++ b/
src/libelogind/sd-bus/bus-socket.c
@@
-29,6
+29,7
@@
#include "missing.h"
#include "utf8.h"
#include "sd-daemon.h"
#include "missing.h"
#include "utf8.h"
#include "sd-daemon.h"
+#include "formats-util.h"
#include "sd-bus.h"
#include "bus-socket.h"
#include "sd-bus.h"
#include "bus-socket.h"
@@
-176,7
+177,7
@@
static int bus_socket_auth_verify_client(sd_bus *b) {
/* We expect two response lines: "OK" and possibly
* "AGREE_UNIX_FD" */
/* We expect two response lines: "OK" and possibly
* "AGREE_UNIX_FD" */
- e = memmem(b->rbuffer, b->rbuffer_size, "\r\n", 2);
+ e = memmem
_safe
(b->rbuffer, b->rbuffer_size, "\r\n", 2);
if (!e)
return 0;
if (!e)
return 0;
@@
-491,7
+492,7
@@
static int bus_socket_auth_verify(sd_bus *b) {
static int bus_socket_read_auth(sd_bus *b) {
struct msghdr mh;
static int bus_socket_read_auth(sd_bus *b) {
struct msghdr mh;
- struct iovec iov;
+ struct iovec iov
= {}
;
size_t n;
ssize_t k;
int r;
size_t n;
ssize_t k;
int r;
@@
-526,7
+527,6
@@
static int bus_socket_read_auth(sd_bus *b) {
b->rbuffer = p;
b->rbuffer = p;
- zero(iov);
iov.iov_base = (uint8_t*) b->rbuffer + b->rbuffer_size;
iov.iov_len = n - b->rbuffer_size;
iov.iov_base = (uint8_t*) b->rbuffer + b->rbuffer_size;
iov.iov_len = n - b->rbuffer_size;
@@
-807,23
+807,21
@@
int bus_socket_write_message(sd_bus *bus, sd_bus_message *m, size_t *idx) {
if (bus->prefer_writev)
k = writev(bus->output_fd, iov, m->n_iovec);
else {
if (bus->prefer_writev)
k = writev(bus->output_fd, iov, m->n_iovec);
else {
- struct msghdr mh;
- zero(mh);
+ struct msghdr mh = {
+ .msg_iov = iov,
+ .msg_iovlen = m->n_iovec,
+ };
if (m->n_fds > 0) {
struct cmsghdr *control;
if (m->n_fds > 0) {
struct cmsghdr *control;
- control = alloca(CMSG_SPACE(sizeof(int) * m->n_fds));
- mh.msg_control = control;
+ mh.msg_control = control = alloca(CMSG_SPACE(sizeof(int) * m->n_fds));
+ mh.msg_controllen = control->cmsg_len = CMSG_LEN(sizeof(int) * m->n_fds);
control->cmsg_level = SOL_SOCKET;
control->cmsg_type = SCM_RIGHTS;
control->cmsg_level = SOL_SOCKET;
control->cmsg_type = SCM_RIGHTS;
- mh.msg_controllen = control->cmsg_len = CMSG_LEN(sizeof(int) * m->n_fds);
memcpy(CMSG_DATA(control), m->fds, sizeof(int) * m->n_fds);
}
memcpy(CMSG_DATA(control), m->fds, sizeof(int) * m->n_fds);
}
- mh.msg_iov = iov;
- mh.msg_iovlen = m->n_iovec;
-
k = sendmsg(bus->output_fd, &mh, MSG_DONTWAIT|MSG_NOSIGNAL);
if (k < 0 && errno == ENOTSOCK) {
bus->prefer_writev = true;
k = sendmsg(bus->output_fd, &mh, MSG_DONTWAIT|MSG_NOSIGNAL);
if (k < 0 && errno == ENOTSOCK) {
bus->prefer_writev = true;
@@
-914,8
+912,8
@@
static int bus_socket_make_message(sd_bus *bus, size_t size) {
r = bus_message_from_malloc(bus,
bus->rbuffer, size,
bus->fds, bus->n_fds,
r = bus_message_from_malloc(bus,
bus->rbuffer, size,
bus->fds, bus->n_fds,
-
!bus->bus_client && bus->ucred_valid ? &bus->ucred :
NULL,
-
!bus->bus_client && bus->label[0] ? bus->label :
NULL,
+ NULL,
+ NULL,
&t);
if (r < 0) {
free(b);
&t);
if (r < 0) {
free(b);
@@
-935,7
+933,7
@@
static int bus_socket_make_message(sd_bus *bus, size_t size) {
int bus_socket_read_message(sd_bus *bus) {
struct msghdr mh;
int bus_socket_read_message(sd_bus *bus) {
struct msghdr mh;
- struct iovec iov;
+ struct iovec iov
= {}
;
ssize_t k;
size_t need;
int r;
ssize_t k;
size_t need;
int r;
@@
-965,7
+963,6
@@
int bus_socket_read_message(sd_bus *bus) {
bus->rbuffer = b;
bus->rbuffer = b;
- zero(iov);
iov.iov_base = (uint8_t*) bus->rbuffer + bus->rbuffer_size;
iov.iov_len = need - bus->rbuffer_size;
iov.iov_base = (uint8_t*) bus->rbuffer + bus->rbuffer_size;
iov.iov_len = need - bus->rbuffer_size;