[systemd-devel] [PATCH] core: fix event source annotations

Mantas Mikulėnas grawity at gmail.com
Wed Apr 29 11:29:18 PDT 2015


These looked like a mass-replace gone slightly wrong – two statements
with no { }'s, and no error checking.
---
 src/core/busname.c | 4 +++-
 src/core/manager.c | 5 ++++-
 src/core/socket.c  | 3 ++-
 3 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/src/core/busname.c b/src/core/busname.c
index 48cc045..94db122 100644
--- a/src/core/busname.c
+++ b/src/core/busname.c
@@ -291,13 +291,15 @@ static int busname_watch_fd(BusName *n) {
                 r = sd_event_source_set_enabled(n->starter_event_source, SD_EVENT_ON);
         else
                 r = sd_event_add_io(UNIT(n)->manager->event, &n->starter_event_source, n->starter_fd, EPOLLIN, busname_dispatch_io, n);
-                (void) sd_event_source_set_description(n->starter_event_source, "busname-starter");
+
         if (r < 0) {
                 log_unit_warning_errno(UNIT(n)->id, r, "Failed to watch starter fd: %m");
                 busname_unwatch_fd(n);
                 return r;
         }
 
+        (void) sd_event_source_set_description(n->starter_event_source, "busname-starter");
+
         return 0;
 }
 
diff --git a/src/core/manager.c b/src/core/manager.c
index 0c94e9e..cf7337e 100644
--- a/src/core/manager.c
+++ b/src/core/manager.c
@@ -90,6 +90,7 @@ static void manager_undo_generators(Manager *m);
 
 static void manager_watch_jobs_in_progress(Manager *m) {
         usec_t next;
+        int r;
 
         assert(m);
 
@@ -97,12 +98,14 @@ static void manager_watch_jobs_in_progress(Manager *m) {
                 return;
 
         next = now(CLOCK_MONOTONIC) + JOBS_IN_PROGRESS_WAIT_USEC;
-        (void) sd_event_add_time(
+        r = sd_event_add_time(
                         m->event,
                         &m->jobs_in_progress_event_source,
                         CLOCK_MONOTONIC,
                         next, 0,
                         manager_dispatch_jobs_in_progress, m);
+        if (r < 0)
+                return;
 
         (void) sd_event_source_set_description(m->jobs_in_progress_event_source, "manager-jobs-in-progress");
 }
diff --git a/src/core/socket.c b/src/core/socket.c
index 702742f..67beda4 100644
--- a/src/core/socket.c
+++ b/src/core/socket.c
@@ -1272,11 +1272,12 @@ static int socket_watch_fds(Socket *s) {
                 else
                         r = sd_event_add_io(UNIT(s)->manager->event, &p->event_source, p->fd, EPOLLIN, socket_dispatch_io, p);
 
-                        (void) sd_event_source_set_description(p->event_source, "socket-port-io");
                 if (r < 0) {
                         log_unit_warning_errno(UNIT(s)->id, r, "Failed to watch listening fds: %m");
                         goto fail;
                 }
+
+                (void) sd_event_source_set_description(p->event_source, "socket-port-io");
         }
 
         return 0;
-- 
2.3.7



More information about the systemd-devel mailing list