diff --git a/src/shared/condition.c b/src/shared/condition.c index 1f72ba8b0f2..2e231dfdff5 100644 --- a/src/shared/condition.c +++ b/src/shared/condition.c @@ -1008,8 +1008,8 @@ static int condition_test_psi(Condition *c, char **env) { const char *p, *value, *pressure_type; loadavg_t *current, limit; ResourcePressure pressure; - int r; PressureType preferred_pressure_type = PRESSURE_TYPE_FULL; + int r; assert(c); assert(c->parameter); @@ -1031,7 +1031,7 @@ static int condition_test_psi(Condition *c, char **env) { /* If only one parameter is passed, then we look at the global system pressure rather than a specific cgroup. */ if (r == 1) { /* cpu.pressure 'full' is reported but undefined at system level */ - if(c->type == CONDITION_CPU_PRESSURE) + if (c->type == CONDITION_CPU_PRESSURE) preferred_pressure_type = PRESSURE_TYPE_SOME; pressure_path = path_join("/proc/pressure", pressure_type); diff --git a/src/shared/mount-util.h b/src/shared/mount-util.h index 20c63e137fe..c260eef02af 100644 --- a/src/shared/mount-util.h +++ b/src/shared/mount-util.h @@ -83,19 +83,22 @@ int mount_flags_to_string(unsigned long flags, char **ret); /* Useful for usage with _cleanup_(), unmounts, removes a directory and frees the pointer */ static inline char* umount_and_rmdir_and_free(char *p) { + if (!p) + return NULL; + PROTECT_ERRNO; - if (p) { - (void) umount_recursive(p, 0); - (void) rmdir(p); - } + (void) umount_recursive(p, 0); + (void) rmdir(p); return mfree(p); } DEFINE_TRIVIAL_CLEANUP_FUNC(char*, umount_and_rmdir_and_free); -static inline char *umount_and_free(char *p) { +static inline char* umount_and_free(char *p) { + if (!p) + return NULL; + PROTECT_ERRNO; - if (p) - (void) umount_recursive(p, 0); + (void) umount_recursive(p, 0); return mfree(p); } DEFINE_TRIVIAL_CLEANUP_FUNC(char*, umount_and_free);