diff options
author | Daniel Mack <github@zonque.org> | 2015-10-20 10:31:38 +0200 |
---|---|---|
committer | Daniel Mack <github@zonque.org> | 2015-10-20 10:31:38 +0200 |
commit | 824b35c3859bc99b97ac5fa6e09aa34627e9bcd5 (patch) | |
tree | 266c8f9988ba8d1cab00a55b360b3f2e42096dde /src/reply-password/reply-password.c | |
parent | ec566e4c7cee67ec2c39475ef08f18a9f1b80efd (diff) | |
parent | 2229f656677f0d50c507aec40cda59f66da5c949 (diff) |
Merge pull request #1568 from poettering/netclass
various fixes, for various things
Diffstat (limited to 'src/reply-password/reply-password.c')
-rw-r--r-- | src/reply-password/reply-password.c | 19 |
1 files changed, 9 insertions, 10 deletions
diff --git a/src/reply-password/reply-password.c b/src/reply-password/reply-password.c index d0d61b98ed..534cf729b9 100644 --- a/src/reply-password/reply-password.c +++ b/src/reply-password/reply-password.c @@ -50,9 +50,10 @@ static int send_on_socket(int fd, const char *socket_name, const void *packet, s } int main(int argc, char *argv[]) { - int fd = -1, r = EXIT_FAILURE; + _cleanup_close_ int fd = -1; char packet[LINE_MAX]; size_t length; + int r; log_set_target(LOG_TARGET_AUTO); log_parse_environment(); @@ -60,14 +61,14 @@ int main(int argc, char *argv[]) { if (argc != 3) { log_error("Wrong number of arguments."); - goto finish; + return EXIT_FAILURE; } if (streq(argv[1], "1")) { packet[0] = '+'; if (!fgets(packet+1, sizeof(packet)-1, stdin)) { - log_error_errno(errno, "Failed to read password: %m"); + r = log_error_errno(errno, "Failed to read password: %m"); goto finish; } @@ -78,22 +79,20 @@ int main(int argc, char *argv[]) { length = 1; } else { log_error("Invalid first argument %s", argv[1]); + r = -EINVAL; goto finish; } fd = socket(AF_UNIX, SOCK_DGRAM|SOCK_CLOEXEC|SOCK_NONBLOCK, 0); if (fd < 0) { - log_error_errno(errno, "socket() failed: %m"); + r = log_error_errno(errno, "socket() failed: %m"); goto finish; } - if (send_on_socket(fd, argv[2], packet, length) < 0) - goto finish; - - r = EXIT_SUCCESS; + r = send_on_socket(fd, argv[2], packet, length); finish: - safe_close(fd); + memory_erase(packet, sizeof(packet)); - return r; + return r < 0 ? EXIT_FAILURE : EXIT_SUCCESS; } |