From 03e334a1c7dc8c20c38902aa039440763acc9b17 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Tue, 18 Mar 2014 19:22:43 +0100 Subject: util: replace close_nointr_nofail() by a more useful safe_close() safe_close() automatically becomes a NOP when a negative fd is passed, and returns -1 unconditionally. This makes it easy to write lines like this: fd = safe_close(fd); Which will close an fd if it is open, and reset the fd variable correctly. By making use of this new scheme we can drop a > 200 lines of code that was required to test for non-negative fds or to reset the closed fd variable afterwards. --- src/libsystemd/sd-bus/bus-container.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) (limited to 'src/libsystemd/sd-bus/bus-container.c') diff --git a/src/libsystemd/sd-bus/bus-container.c b/src/libsystemd/sd-bus/bus-container.c index d330363b6f..2cd0e1f99e 100644 --- a/src/libsystemd/sd-bus/bus-container.c +++ b/src/libsystemd/sd-bus/bus-container.c @@ -154,8 +154,7 @@ int bus_container_connect_kernel(sd_bus *b) { if (child == 0) { pid_t grandchild; - close_nointr_nofail(pair[0]); - pair[0] = -1; + pair[0] = safe_close(pair[0]); r = namespace_enter(pidnsfd, mntnsfd, rootfd); if (r < 0) @@ -202,8 +201,7 @@ int bus_container_connect_kernel(sd_bus *b) { _exit(si.si_status); } - close_nointr_nofail(pair[1]); - pair[1] = -1; + pair[1] = safe_close(pair[1]); r = wait_for_terminate(child, &si); if (r < 0) -- cgit v1.2.3-54-g00ecf