From d80e2a1ed36cd2fe6f5b6bda9419246289ef2897 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Mon, 27 Mar 2023 18:11:18 +0200 Subject: [PATCH] devnum-util: add new devnum_is_zero() helper --- src/basic/devnum-util.c | 2 +- src/basic/devnum-util.h | 4 ++++ src/basic/terminal-util.c | 2 +- src/libsystemd/sd-device/device-util.c | 2 +- 4 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/basic/devnum-util.c b/src/basic/devnum-util.c index de02255eef6..f82e13bdb02 100644 --- a/src/basic/devnum-util.c +++ b/src/basic/devnum-util.c @@ -83,7 +83,7 @@ int device_path_make_canonical(mode_t mode, dev_t devnum, char **ret) { assert(ret); - if (major(devnum) == 0 && minor(devnum) == 0) + if (devnum_is_zero(devnum)) /* A special hack to make sure our 'inaccessible' device nodes work. They won't have symlinks in * /dev/block/ and /dev/char/, hence we handle them specially here. */ return device_path_make_inaccessible(mode, ret); diff --git a/src/basic/devnum-util.h b/src/basic/devnum-util.h index 38aa4efa87b..e109de99136 100644 --- a/src/basic/devnum-util.h +++ b/src/basic/devnum-util.h @@ -50,3 +50,7 @@ static inline char *format_devnum(dev_t d, char buf[static DEVNUM_STR_MAX]) { } #define FORMAT_DEVNUM(d) format_devnum((d), (char[DEVNUM_STR_MAX]) {}) + +static inline bool devnum_is_zero(dev_t d) { + return major(d) == 0 && minor(d) == 0; +} diff --git a/src/basic/terminal-util.c b/src/basic/terminal-util.c index d3aa5c27e2b..796c262acfd 100644 --- a/src/basic/terminal-util.c +++ b/src/basic/terminal-util.c @@ -979,7 +979,7 @@ int get_ctty_devnr(pid_t pid, dev_t *d) { &ttynr) != 1) return -EIO; - if (major(ttynr) == 0 && minor(ttynr) == 0) + if (devnum_is_zero(ttynr)) return -ENXIO; if (d) diff --git a/src/libsystemd/sd-device/device-util.c b/src/libsystemd/sd-device/device-util.c index 47c5d988963..529eff2fd19 100644 --- a/src/libsystemd/sd-device/device-util.c +++ b/src/libsystemd/sd-device/device-util.c @@ -15,7 +15,7 @@ int devname_from_devnum(mode_t mode, dev_t devnum, char **ret) { assert(ret); - if (major(devnum) == 0 && minor(devnum) == 0) + if (devnum_is_zero(devnum)) return device_path_make_inaccessible(mode, ret); r = device_new_from_mode_and_devnum(&dev, mode, devnum); -- 2.47.3