diff --git a/src/core/socket.c b/src/core/socket.c index a21584ea48..1da5f304aa 100644 --- a/src/core/socket.c +++ b/src/core/socket.c @@ -1064,7 +1064,7 @@ static void socket_apply_socket_options(Socket *s, int fd) { } if (s->send_buffer > 0) { - r = fd_set_sndbuf(fd, s->receive_buffer, false); + r = fd_set_sndbuf(fd, s->send_buffer, false); if (r < 0) log_unit_warning_errno(UNIT(s), r, "SO_SNDBUF/SO_SNDBUFFORCE failed: %m"); } diff --git a/src/libsystemd/sd-login/sd-login.c b/src/libsystemd/sd-login/sd-login.c index 601a27ab57..d8baa6f8af 100644 --- a/src/libsystemd/sd-login/sd-login.c +++ b/src/libsystemd/sd-login/sd-login.c @@ -916,14 +916,14 @@ _public_ int sd_machine_get_ifindices(const char *machine, int **ret_ifindices) if (!tt) return -ENOMEM; - size_t n = 0; - int *ifindices; + _cleanup_free_ int *ifindices = NULL; if (ret_ifindices) { ifindices = new(int, strv_length(tt)); if (!ifindices) return -ENOMEM; } + size_t n = 0; for (size_t i = 0; tt[i]; i++) { int ind; @@ -938,7 +938,8 @@ _public_ int sd_machine_get_ifindices(const char *machine, int **ret_ifindices) } if (ret_ifindices) - *ret_ifindices = ifindices; + *ret_ifindices = TAKE_PTR(ifindices); + return n; }