chiark / gitweb /
Use initalization instead of explicit zeroing
[elogind.git] / src / shutdownd / shutdownd.c
index ee2a328b4eb311807402ca859e65fffba59ee552..4c9c149a2dcbeef314d35ae532fb3e9151aa7899 100644 (file)
@@ -46,30 +46,29 @@ union shutdown_buffer {
 };
 
 static int read_packet(int fd, union shutdown_buffer *_b) {
-        struct msghdr msghdr;
-        struct iovec iovec;
         struct ucred *ucred;
+        ssize_t n;
+
+        union shutdown_buffer b; /* We maintain our own copy here, in
+                                  * order not to corrupt the last message */
+        struct iovec iovec = {
+                iovec.iov_base = &b,
+                iovec.iov_len = sizeof(b) - 1,
+        };
         union {
                 struct cmsghdr cmsghdr;
                 uint8_t buf[CMSG_SPACE(sizeof(struct ucred))];
-        } control;
-        ssize_t n;
-        union shutdown_buffer b; /* We maintain our own copy here, in order not to corrupt the last message */
+        } control = {};
+        struct msghdr msghdr = {
+                .msg_iov = &iovec,
+                msghdr.msg_iovlen = 1,
+                msghdr.msg_control = &control,
+                msghdr.msg_controllen = sizeof(control),
+        };
 
         assert(fd >= 0);
         assert(_b);
 
-        zero(iovec);
-        iovec.iov_base = &b;
-        iovec.iov_len = sizeof(b) - 1;
-
-        zero(control);
-        zero(msghdr);
-        msghdr.msg_iov = &iovec;
-        msghdr.msg_iovlen = 1;
-        msghdr.msg_control = &control;
-        msghdr.msg_controllen = sizeof(control);
-
         n = recvmsg(fd, &msghdr, MSG_DONTWAIT);
         if (n <= 0) {
                 if (n == 0) {
@@ -270,8 +269,8 @@ int main(int argc, char *argv[]) {
         };
 
         int r = EXIT_FAILURE, n_fds;
-        union shutdown_buffer b;
-        struct pollfd pollfd[_FD_MAX];
+        union shutdown_buffer b = {};
+        struct pollfd pollfd[_FD_MAX] = {};
         bool exec_shutdown = false, unlink_nologin = false;
         unsigned i;
 
@@ -302,9 +301,6 @@ int main(int argc, char *argv[]) {
                 return EXIT_FAILURE;
         }
 
-        zero(b);
-        zero(pollfd);
-
         pollfd[FD_SOCKET].fd = SD_LISTEN_FDS_START;
         pollfd[FD_SOCKET].events = POLLIN;
 
@@ -402,13 +398,12 @@ int main(int argc, char *argv[]) {
                 }
 
                 if (pollfd[FD_WALL_TIMER].revents) {
-                        struct itimerspec its;
+                        struct itimerspec its = {};
 
                         warn_wall(n, &b.command);
                         flush_fd(pollfd[FD_WALL_TIMER].fd);
 
                         /* Restart timer */
-                        zero(its);
                         timespec_store(&its.it_value, when_wall(n, b.command.usec));
                         if (timerfd_settime(pollfd[FD_WALL_TIMER].fd, TFD_TIMER_ABSTIME, &its, NULL) < 0) {
                                 log_error("timerfd_settime(): %m");