X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Freply-password%2Freply-password.c;h=54683b6f4af25c3bd47fd1499f18bfb9a95c3894;hp=a935d0f08401fe9794f0870083270b5ebdd273e3;hb=75e52a16f9ef476f1d18ec6d9c84e00149b80d03;hpb=f274ece0f76b5709408821e317e87aef76123db6;ds=sidebyside diff --git a/src/reply-password/reply-password.c b/src/reply-password/reply-password.c index a935d0f08..54683b6f4 100644 --- a/src/reply-password/reply-password.c +++ b/src/reply-password/reply-password.c @@ -41,20 +41,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 +75,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 +89,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 +101,7 @@ int main(int argc, char *argv[]) { r = EXIT_SUCCESS; finish: - if (fd >= 0) - close_nointr_nofail(fd); + safe_close(fd); return r; }