From dc4ebc0787a299f064553e6d28a7f35574ce1c2a Mon Sep 17 00:00:00 2001 From: Markus Elfring Date: Mon, 17 Aug 2015 09:30:49 +0200 Subject: Bug #944: Deletion of unnecessary checks before calls of the function "free" The function "free" is documented in the way that no action shall occur for a passed null pointer. It is therefore not needed that a function caller repeats a corresponding check. http://stackoverflow.com/questions/18775608/free-a-null-pointer-anyway-or-check-first This issue was fixed by using the software Coccinelle 1.0.1. --- src/journal/journal-file.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/journal') diff --git a/src/journal/journal-file.c b/src/journal/journal-file.c index f7815b2796..4f94799ce7 100644 --- a/src/journal/journal-file.c +++ b/src/journal/journal-file.c @@ -169,7 +169,7 @@ void journal_file_close(JournalFile *f) { #ifdef HAVE_GCRYPT if (f->fss_file) munmap(f->fss_file, PAGE_ALIGN(f->fss_file_size)); - else if (f->fsprg_state) + else free(f->fsprg_state); free(f->fsprg_seed); -- cgit v1.2.3-54-g00ecf From 3e044c492e3ebe64f4e3175c94f9db8a62557b82 Mon Sep 17 00:00:00 2001 From: Markus Elfring Date: Mon, 17 Aug 2015 10:45:30 +0200 Subject: Bug #944: Deletion of unnecessary checks before a few calls of systemd functions The following functions return immediately if a null pointer was passed. * calendar_spec_free * link_address_free * manager_free * sd_bus_unref * sd_journal_close * udev_monitor_unref * udev_unref It is therefore not needed that a function caller repeats a corresponding check. This issue was fixed by using the software Coccinelle 1.0.1. --- src/core/dbus-timer.c | 3 +-- src/core/timer.c | 5 +---- src/journal-remote/journal-gatewayd.c | 3 +-- src/journal/journald-server.c | 3 +-- src/libsystemd/sd-bus/test-bus-chat.c | 4 +--- src/login/logind.c | 20 +++++++------------- src/machine/machined.c | 3 +-- src/resolve/resolved-manager.c | 3 +-- src/update-utmp/update-utmp.c | 4 +--- 9 files changed, 15 insertions(+), 33 deletions(-) (limited to 'src/journal') diff --git a/src/core/dbus-timer.c b/src/core/dbus-timer.c index 74a9914358..8ea2cf84a4 100644 --- a/src/core/dbus-timer.c +++ b/src/core/dbus-timer.c @@ -252,8 +252,7 @@ static int bus_timer_set_transient_property( v = new0(TimerValue, 1); if (!v) { - if (c) - calendar_spec_free(c); + calendar_spec_free(c); return -ENOMEM; } diff --git a/src/core/timer.c b/src/core/timer.c index 51cd56ca84..7027f83dfd 100644 --- a/src/core/timer.c +++ b/src/core/timer.c @@ -56,10 +56,7 @@ void timer_free_values(Timer *t) { while ((v = t->values)) { LIST_REMOVE(value, t->values, v); - - if (v->calendar_spec) - calendar_spec_free(v->calendar_spec); - + calendar_spec_free(v->calendar_spec); free(v); } } diff --git a/src/journal-remote/journal-gatewayd.c b/src/journal-remote/journal-gatewayd.c index 1eb07a1681..ebdd9edfc3 100644 --- a/src/journal-remote/journal-gatewayd.c +++ b/src/journal-remote/journal-gatewayd.c @@ -103,8 +103,7 @@ static void request_meta_free( if (!m) return; - if (m->journal) - sd_journal_close(m->journal); + sd_journal_close(m->journal); if (m->tmp) fclose(m->tmp); diff --git a/src/journal/journald-server.c b/src/journal/journald-server.c index 28b1472ac8..fa2e9b9825 100644 --- a/src/journal/journald-server.c +++ b/src/journal/journald-server.c @@ -1689,6 +1689,5 @@ void server_done(Server *s) { if (s->mmap) mmap_cache_unref(s->mmap); - if (s->udev) - udev_unref(s->udev); + udev_unref(s->udev); } diff --git a/src/libsystemd/sd-bus/test-bus-chat.c b/src/libsystemd/sd-bus/test-bus-chat.c index b97729caf7..a0aecc1f55 100644 --- a/src/libsystemd/sd-bus/test-bus-chat.c +++ b/src/libsystemd/sd-bus/test-bus-chat.c @@ -118,9 +118,7 @@ static int server_init(sd_bus **_bus) { return 0; fail: - if (bus) - sd_bus_unref(bus); - + sd_bus_unref(bus); return r; } diff --git a/src/login/logind.c b/src/login/logind.c index cf71c0ec5a..8ac2aceb9b 100644 --- a/src/login/logind.c +++ b/src/login/logind.c @@ -153,17 +153,12 @@ static void manager_free(Manager *m) { safe_close(m->console_active_fd); - if (m->udev_seat_monitor) - udev_monitor_unref(m->udev_seat_monitor); - if (m->udev_device_monitor) - udev_monitor_unref(m->udev_device_monitor); - if (m->udev_vcsa_monitor) - udev_monitor_unref(m->udev_vcsa_monitor); - if (m->udev_button_monitor) - udev_monitor_unref(m->udev_button_monitor); - - if (m->udev) - udev_unref(m->udev); + udev_monitor_unref(m->udev_seat_monitor); + udev_monitor_unref(m->udev_device_monitor); + udev_monitor_unref(m->udev_vcsa_monitor); + udev_monitor_unref(m->udev_button_monitor); + + udev_unref(m->udev); if (m->unlink_nologin) (void) unlink("/run/nologin"); @@ -1170,8 +1165,7 @@ finish: "STOPPING=1\n" "STATUS=Shutting down..."); - if (m) - manager_free(m); + manager_free(m); return r < 0 ? EXIT_FAILURE : EXIT_SUCCESS; } diff --git a/src/machine/machined.c b/src/machine/machined.c index 1eeeaf17a5..c8ad157326 100644 --- a/src/machine/machined.c +++ b/src/machine/machined.c @@ -355,8 +355,7 @@ int main(int argc, char *argv[]) { log_debug("systemd-machined stopped as pid "PID_FMT, getpid()); finish: - if (m) - manager_free(m); + manager_free(m); return r < 0 ? EXIT_FAILURE : EXIT_SUCCESS; } diff --git a/src/resolve/resolved-manager.c b/src/resolve/resolved-manager.c index 5be01d3cb8..645f2a824c 100644 --- a/src/resolve/resolved-manager.c +++ b/src/resolve/resolved-manager.c @@ -176,8 +176,7 @@ static int manager_process_address(sd_netlink *rtnl, sd_netlink_message *mm, voi break; case RTM_DELADDR: - if (a) - link_address_free(a); + link_address_free(a); break; } diff --git a/src/update-utmp/update-utmp.c b/src/update-utmp/update-utmp.c index ea9b0c9c84..61bcf02b2f 100644 --- a/src/update-utmp/update-utmp.c +++ b/src/update-utmp/update-utmp.c @@ -286,8 +286,6 @@ finish: audit_close(c.audit_fd); #endif - if (c.bus) - sd_bus_unref(c.bus); - + sd_bus_unref(c.bus); return r < 0 ? EXIT_FAILURE : EXIT_SUCCESS; } -- cgit v1.2.3-54-g00ecf