]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
devnum-util: add new devnum_is_zero() helper
authorLennart Poettering <lennart@poettering.net>
Mon, 27 Mar 2023 16:11:18 +0000 (18:11 +0200)
committerLennart Poettering <lennart@poettering.net>
Wed, 29 Mar 2023 16:27:05 +0000 (18:27 +0200)
src/basic/devnum-util.c
src/basic/devnum-util.h
src/basic/terminal-util.c
src/libsystemd/sd-device/device-util.c

index de02255eef6493c1af47adec44b2980827477444..f82e13bdb02875449bcf2ee7d5233bd8dbb94c2a 100644 (file)
@@ -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);
index 38aa4efa87b602a4771e1b3c6ee99b01fa7e2193..e109de991360b28676b55a060d5718873c1328cc 100644 (file)
@@ -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;
+}
index d3aa5c27e2b788d9e0c2a0353ea51fa54c37eb24..796c262acfd1501544aa54ed27cd227bf8dfd8ff 100644 (file)
@@ -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)
index 47c5d98896313d1b986d27b37be41e2bda0c7e7e..529eff2fd1991e6bc7aa4ede7bb8afeda6141dd1 100644 (file)
@@ -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);