X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Fremount-fs%2Fremount-fs.c;h=847637a12ca3988e9f3970e2407e4a82bc54570a;hp=636c46f0f39971f00d626566f95848b72585d4a9;hb=e3dc56a21907d5c028e11bfb750447614e0ed900;hpb=0d0f0c50d3a1d90f03972a6abb82e6413daaa583 diff --git a/src/remount-fs/remount-fs.c b/src/remount-fs/remount-fs.c index 636c46f0f..847637a12 100644 --- a/src/remount-fs/remount-fs.c +++ b/src/remount-fs/remount-fs.c @@ -40,7 +40,7 @@ int main(int argc, char *argv[]) { int ret = EXIT_FAILURE; - FILE *f = NULL; + _cleanup_endmntent_ FILE *f = NULL; struct mntent* me; Hashmap *pids = NULL; @@ -57,13 +57,11 @@ int main(int argc, char *argv[]) { f = setmntent("/etc/fstab", "r"); if (!f) { - if (errno == ENOENT) { - ret = EXIT_SUCCESS; - goto finish; - } + if (errno == ENOENT) + return EXIT_SUCCESS; log_error("Failed to open /etc/fstab: %m"); - goto finish; + return EXIT_FAILURE; } pids = hashmap_new(trivial_hash_func, trivial_compare_func); @@ -129,10 +127,9 @@ int main(int argc, char *argv[]) { } while (!hashmap_isempty(pids)) { - siginfo_t si; + siginfo_t si = {}; char *s; - zero(si); if (waitid(P_ALL, 0, &si, WEXITED) < 0) { if (errno == EINTR) @@ -145,7 +142,7 @@ int main(int argc, char *argv[]) { s = hashmap_remove(pids, UINT_TO_PTR(si.si_pid)); if (s) { - if (!is_clean_exit(si.si_code, si.si_status)) { + if (!is_clean_exit(si.si_code, si.si_status, NULL)) { if (si.si_code == CLD_EXITED) log_error("/bin/mount for %s exited with exit status %i.", s, si.si_status); else @@ -163,8 +160,5 @@ finish: if (pids) hashmap_free_free(pids); - if (f) - endmntent(f); - return ret; }