1
1
mirror of https://github.com/systemd/systemd-stable.git synced 2024-10-28 20:25:25 +03:00

cgroup: properly check for ignore-notfound paths (#4803)

Follow-up to #4687 and e7330dfe14.
This commit is contained in:
Dave Reisner 2016-12-02 09:23:23 -05:00 committed by Zbigniew Jędrzejewski-Szmek
parent 06bf09af67
commit b200489b2b

View File

@ -287,14 +287,21 @@ static int lookup_block_device(const char *p, dev_t *dev) {
static int whitelist_device(const char *path, const char *node, const char *acc) {
char buf[2+DECIMAL_STR_MAX(dev_t)*2+2+4];
struct stat st;
bool ignore_notfound;
int r;
assert(path);
assert(acc);
if (node[0] == '-') {
/* Non-existent paths starting with "-" must be silently ignored */
node++;
ignore_notfound = true;
} else
ignore_notfound = false;
if (stat(node, &st) < 0) {
/* path starting with "-" must be silently ignored */
if (errno == ENOENT && startswith(node, "-"))
if (errno == ENOENT && ignore_notfound)
return 0;
return log_warning_errno(errno, "Couldn't stat device %s: %m", node);