1
1
mirror of https://github.com/systemd/systemd-stable.git synced 2024-12-24 21:34:08 +03:00

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.)
This commit is contained in:
Lennart Poettering 2021-03-04 16:03:07 +01:00 committed by Luca Boccassi
parent 44a8ad7a24
commit 4d930e87ee

View File

@ -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;
}