]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
tmpfiles: fix directory removal with force symlink (#8619)
authorRicardo Salveti de Araujo <rsalveti@rsalveti.net>
Tue, 3 Apr 2018 13:05:11 +0000 (10:05 -0300)
committerLennart Poettering <lennart@poettering.net>
Tue, 3 Apr 2018 13:05:11 +0000 (15:05 +0200)
symlink_atomic returns -EISDIR when the target symlink path is a
directory.

Fixes #7447

Signed-off-by: Ricardo Salveti <ricardo@opensourcefoundries.com>
src/tmpfiles/tmpfiles.c

index 61e76570b1524d125308869755ad3a2c5e7d8541..d04f24065b4ecb7e5b2d175035c817b24e120173 100644 (file)
@@ -1665,7 +1665,7 @@ static int create_item(Item *i) {
                                         r = symlink_atomic(i->argument, i->path);
                                         mac_selinux_create_file_clear();
 
-                                        if (IN_SET(r, -EEXIST, -ENOTEMPTY)) {
+                                        if (IN_SET(r, -EISDIR, -EEXIST, -ENOTEMPTY)) {
                                                 r = rm_rf(i->path, REMOVE_ROOT|REMOVE_PHYSICAL);
                                                 if (r < 0)
                                                         return log_error_errno(r, "rm -fr %s failed: %m", i->path);