From 4d930e87ee30e74a585c840b4642157dd6321707 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Thu, 4 Mar 2021 16:03:07 +0100 Subject: [PATCH] rm-rf: fix up chmod in the _cleanup_ rm_rf() destructors REMOVE_CHMOD is necessary to remove files/dirs that are owned by us but have an access mode that would not allow us to remove them. In generic destructor calls for use with `_cleanup_` that are "fire-and-forget" style we should make use of that, to maximize the chance we can actually remove the files/dirs. (Also, add in REMOVE_MISSING_OK. Just because prettier, we ignore the return codes anyway, but it' a bit nicer to ignore a bit fewer errors.) --- src/basic/rm-rf.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/basic/rm-rf.h b/src/basic/rm-rf.h index 6483b30d7e0..d954146a2eb 100644 --- a/src/basic/rm-rf.h +++ b/src/basic/rm-rf.h @@ -24,7 +24,7 @@ static inline char *rm_rf_physical_and_free(char *p) { if (!p) return NULL; - (void) rm_rf(p, REMOVE_ROOT|REMOVE_PHYSICAL); + (void) rm_rf(p, REMOVE_ROOT|REMOVE_PHYSICAL|REMOVE_MISSING_OK|REMOVE_CHMOD); free(p); return NULL; } @@ -37,7 +37,7 @@ static inline char *rm_rf_subvolume_and_free(char *p) { if (!p) return NULL; - (void) rm_rf(p, REMOVE_ROOT|REMOVE_PHYSICAL|REMOVE_SUBVOLUME); + (void) rm_rf(p, REMOVE_ROOT|REMOVE_PHYSICAL|REMOVE_SUBVOLUME|REMOVE_MISSING_OK|REMOVE_CHMOD); free(p); return NULL; } -- 2.47.3