]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
blockdev-util: Remove dependency on string-util.h
authorDaan De Meyer <daan.j.demeyer@gmail.com>
Wed, 14 May 2025 13:33:36 +0000 (15:33 +0200)
committerDaan De Meyer <daan.j.demeyer@gmail.com>
Wed, 14 May 2025 14:56:05 +0000 (16:56 +0200)
Let's insist on a string literal in SYS_BLOCK_PATH_MAX() so that
we don't accidentally allocate VLAs and let's inline strempty() in
xsprintf_sys_block_path() so we don't need to include string-util.h
in blockdev-util.h

We'll remove the actual string-util.h include as part of #37344.

src/shared/blockdev-util.c
src/shared/blockdev-util.h

index fc3c3e7d14379e65571b79be5910b4be260aa814..b5c82aaccd68f45279c211aa4ae0f687cc54aa8f 100644 (file)
@@ -542,7 +542,7 @@ static int blockdev_is_encrypted(const char *sysfs_path, unsigned depth_left) {
 }
 
 int fd_is_encrypted(int fd) {
-        char p[SYS_BLOCK_PATH_MAX(NULL)];
+        char p[SYS_BLOCK_PATH_MAX("")];
         dev_t devt;
         int r;
 
@@ -558,7 +558,7 @@ int fd_is_encrypted(int fd) {
 }
 
 int path_is_encrypted(const char *path) {
-        char p[SYS_BLOCK_PATH_MAX(NULL)];
+        char p[SYS_BLOCK_PATH_MAX("")];
         dev_t devt;
         int r;
 
index d0b72c6c2301e697a8909bc25b1a17572c76fcb4..df52d78c59e0d0905354aedb522d210b8db30533 100644 (file)
@@ -10,9 +10,9 @@
 #include "string-util.h"
 
 #define SYS_BLOCK_PATH_MAX(suffix)                                      \
-        (STRLEN("/sys/dev/block/") + DECIMAL_STR_MAX(dev_t) + 1 + DECIMAL_STR_MAX(dev_t) + strlen_ptr(suffix))
+        (STRLEN("/sys/dev/block/") + DECIMAL_STR_MAX(dev_t) + 1 + DECIMAL_STR_MAX(dev_t) + STRLEN(suffix))
 #define xsprintf_sys_block_path(buf, suffix, devno)                     \
-        xsprintf(buf, "/sys/dev/block/%u:%u%s", major(devno), minor(devno), strempty(suffix))
+        xsprintf(buf, "/sys/dev/block/%u:%u%s", major(devno), minor(devno), suffix ?: "")
 
 typedef enum BlockDeviceLookupFlag {
         BLOCK_DEVICE_LOOKUP_WHOLE_DISK  = 1 << 0, /* whole block device, e.g. sda, nvme0n1, or loop0. */