mirror of
https://github.com/systemd/systemd
synced 2024-09-06 08:46:19 +00:00
stat-util: trivial empty_or_null() tweaks
To small tweaks: /dev/null is definitely a char device. And if we have the path, to a string base comparison first.
This commit is contained in:
parent
8acb11a6a3
commit
29da419305
|
@ -94,10 +94,10 @@ bool null_or_empty(struct stat *st) {
|
|||
if (S_ISREG(st->st_mode) && st->st_size <= 0)
|
||||
return true;
|
||||
|
||||
/* We don't want to hardcode the major/minor of /dev/null,
|
||||
* hence we do a simpler "is this a device node?" check. */
|
||||
/* We don't want to hardcode the major/minor of /dev/null, hence we do a simpler "is this a character
|
||||
* device node?" check. */
|
||||
|
||||
if (S_ISCHR(st->st_mode) || S_ISBLK(st->st_mode))
|
||||
if (S_ISCHR(st->st_mode))
|
||||
return true;
|
||||
|
||||
return false;
|
||||
|
@ -108,6 +108,10 @@ int null_or_empty_path(const char *fn) {
|
|||
|
||||
assert(fn);
|
||||
|
||||
/* If we have the path, let's do an easy text comparison first. */
|
||||
if (path_equal(fn, "/dev/null"))
|
||||
return true;
|
||||
|
||||
if (stat(fn, &st) < 0)
|
||||
return -errno;
|
||||
|
||||
|
|
Loading…
Reference in a new issue