From d4ee1ff01f94848e90710d0ee7bcc80503ac34c8 Mon Sep 17 00:00:00 2001 From: Jan Polensky Date: Tue, 30 Sep 2025 16:45:56 +0200 Subject: [PATCH] zconf/lscss: Use util_readlink() for consistent error handling MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Avoid code duplication and inconsistent error handling by replacing readlink() with util_readlink(), which is used project-wide to standardize readlink() usage. Reviewed-by: Jan Höppner Signed-off-by: Jan Polensky Signed-off-by: Jan Höppner --- zconf/css/lscss.c | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/zconf/css/lscss.c b/zconf/css/lscss.c index 8c2d1437..cb0b7cb9 100644 --- a/zconf/css/lscss.c +++ b/zconf/css/lscss.c @@ -20,7 +20,6 @@ #include "lib/util_prg.h" #include "lib/util_rec.h" #include "lib/util_scandir.h" -#include "lib/util_panic.h" #include "misc.h" @@ -376,20 +375,17 @@ static int fill_device_info(struct util_rec *rec, char *path, char *device) static bool is_sch_vfio(char *path) { - char lnk[PATH_MAX], driver_path[PATH_MAX]; - ssize_t rc; + char lnk[PATH_MAX]; + char *driver_path; snprintf(lnk, PATH_MAX, "%s/driver", path); - rc = readlink(lnk, driver_path, PATH_MAX); - if (rc < 0) - return false; + driver_path = util_readlink(lnk); - util_assert(rc < (PATH_MAX - 1), - "Internal error: Symlink name too long"); - driver_path[rc] = '\0'; - - if (strcmp(basename(driver_path), "vfio_ccw") == 0) + if (strcmp(basename(driver_path), "vfio_ccw") == 0) { + free(driver_path); return true; + } + free(driver_path); return false; }