From: Zbigniew Jędrzejewski-Szmek Date: Tue, 6 Jul 2021 14:41:28 +0000 (+0200) Subject: tmpfiles: fix borked assert X-Git-Tag: v247.8~6 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=5f2d3e45aa156f5fe215c2fd609082423fdd6fc5;p=thirdparty%2Fsystemd.git tmpfiles: fix borked assert It seems that fd_set_perms() is always called after checking that fd >= 0 (also when called as action() in glob_item_recursively()), so it seems that the assertion really came from fd==0. Fixes #20140. Also three other similar cases are updated. (cherry picked from commit b4b0f87c6275dde32769c2e75231caa1d4c21f9b) (cherry picked from commit 1dcecfc50b6c4db3b76b81765403f84c06ecf225) --- diff --git a/src/tmpfiles/tmpfiles.c b/src/tmpfiles/tmpfiles.c index a1f42139237..341f83fd5af 100644 --- a/src/tmpfiles/tmpfiles.c +++ b/src/tmpfiles/tmpfiles.c @@ -837,7 +837,7 @@ static int fd_set_perms(Item *i, int fd, const char *path, const struct stat *st int r; assert(i); - assert(fd); + assert(fd >= 0); assert(path); if (!i->mode_set && !i->uid_set && !i->gid_set) @@ -1021,7 +1021,7 @@ static int fd_set_xattrs(Item *i, int fd, const char *path, const struct stat *s char **name, **value; assert(i); - assert(fd); + assert(fd >= 0); assert(path); xsprintf(procfs_path, "/proc/self/fd/%i", fd); @@ -1124,7 +1124,7 @@ static int fd_set_acls(Item *item, int fd, const char *path, const struct stat * struct stat stbuf; assert(item); - assert(fd); + assert(fd >= 0); assert(path); if (!st) { @@ -1278,7 +1278,7 @@ static int fd_set_attribute(Item *item, int fd, const char *path, const struct s int r; assert(item); - assert(fd); + assert(fd >= 0); assert(path); if (!item->attribute_set || item->attribute_mask == 0)