X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Freply-password%2Freply-password.c;h=d0d61b98ed3102e1d1b670ab0e9f051e8acdc005;hb=cade1a06b324f2f0ccceddaad174f3b306a5e565;hp=a935d0f08401fe9794f0870083270b5ebdd273e3;hpb=dce818b390a857a11f7dd634684500675cf79833;p=elogind.git diff --git a/src/reply-password/reply-password.c b/src/reply-password/reply-password.c index a935d0f08..d0d61b98e 100644 --- a/src/reply-password/reply-password.c +++ b/src/reply-password/reply-password.c @@ -20,17 +20,9 @@ ***/ #include -#include -#include -#include #include #include -#include -#include #include -#include -#include -#include #include #include "log.h" @@ -41,20 +33,18 @@ static int send_on_socket(int fd, const char *socket_name, const void *packet, s union { struct sockaddr sa; struct sockaddr_un un; - } sa; + } sa = { + .un.sun_family = AF_UNIX, + }; assert(fd >= 0); assert(socket_name); assert(packet); - zero(sa); - sa.un.sun_family = AF_UNIX; strncpy(sa.un.sun_path, socket_name, sizeof(sa.un.sun_path)); - if (sendto(fd, packet, size, MSG_NOSIGNAL, &sa.sa, offsetof(struct sockaddr_un, sun_path) + strlen(socket_name)) < 0) { - log_error("Failed to send: %m"); - return -1; - } + if (sendto(fd, packet, size, MSG_NOSIGNAL, &sa.sa, offsetof(struct sockaddr_un, sun_path) + strlen(socket_name)) < 0) + return log_error_errno(errno, "Failed to send: %m"); return 0; } @@ -77,7 +67,7 @@ int main(int argc, char *argv[]) { packet[0] = '+'; if (!fgets(packet+1, sizeof(packet)-1, stdin)) { - log_error("Failed to read password: %m"); + log_error_errno(errno, "Failed to read password: %m"); goto finish; } @@ -91,8 +81,9 @@ int main(int argc, char *argv[]) { goto finish; } - if ((fd = socket(AF_UNIX, SOCK_DGRAM|SOCK_CLOEXEC|SOCK_NONBLOCK, 0)) < 0) { - log_error("socket() failed: %m"); + fd = socket(AF_UNIX, SOCK_DGRAM|SOCK_CLOEXEC|SOCK_NONBLOCK, 0); + if (fd < 0) { + log_error_errno(errno, "socket() failed: %m"); goto finish; } @@ -102,8 +93,7 @@ int main(int argc, char *argv[]) { r = EXIT_SUCCESS; finish: - if (fd >= 0) - close_nointr_nofail(fd); + safe_close(fd); return r; }