]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
sd-event: use _cleanup_ in one more place 14523/head
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Wed, 8 Jan 2020 15:22:23 +0000 (16:22 +0100)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Wed, 8 Jan 2020 16:15:54 +0000 (17:15 +0100)
src/libsystemd/sd-event/sd-event.c

index 86285a5f9650da10b346824f79245732318ec6c1..fb9db47105c06c01b5c5b396a9e064d6bfc2bca8 100644 (file)
@@ -1037,14 +1037,15 @@ static int event_setup_timer_fd(
                 struct clock_data *d,
                 clockid_t clock) {
 
-        int r, fd;
-
         assert(e);
         assert(d);
 
         if (_likely_(d->fd >= 0))
                 return 0;
 
+        _cleanup_close_ int fd = -1;
+        int r;
+
         fd = timerfd_create(clock, TFD_NONBLOCK|TFD_CLOEXEC);
         if (fd < 0)
                 return -errno;
@@ -1057,12 +1058,10 @@ static int event_setup_timer_fd(
         };
 
         r = epoll_ctl(e->epoll_fd, EPOLL_CTL_ADD, fd, &ev);
-        if (r < 0) {
-                safe_close(fd);
+        if (r < 0)
                 return -errno;
-        }
 
-        d->fd = fd;
+        d->fd = TAKE_FD(fd);
         return 0;
 }