From 9c60ceccd4e7d12ddb23d337281cc0c5ebca2dfb Mon Sep 17 00:00:00 2001 From: Jan Polensky Date: Mon, 29 Sep 2025 17:45:24 +0200 Subject: [PATCH] dasdinfo: 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 --- dasdinfo/dasdinfo.c | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/dasdinfo/dasdinfo.c b/dasdinfo/dasdinfo.c index 22e82892..611deaa7 100644 --- a/dasdinfo/dasdinfo.c +++ b/dasdinfo/dasdinfo.c @@ -386,10 +386,8 @@ static int dinfo_is_busiddir(const char *fpath, const struct stat *UNUSED(sb), int tflag, struct FTW *ftwbuf) { - enum { LINK_DIR_SIZE = 128 }; - char linkdir[LINK_DIR_SIZE]; char *tempdir; - ssize_t i; + char *linkdir; if (tflag != FTW_D || (strncmp((fpath + ftwbuf->base), searchbusid, strlen(searchbusid)) != 0)) @@ -401,14 +399,13 @@ dinfo_is_busiddir(const char *fpath, const struct stat *UNUSED(sb), */ if (asprintf(&tempdir, "%s/driver", fpath) < 0) return -1; - i = readlink(tempdir, linkdir, LINK_DIR_SIZE); + linkdir = util_readlink(tempdir); free(tempdir); - if (i < 0 || i >= LINK_DIR_SIZE) - return -1; - /* append '\0' because readlink returns non zero terminated string */ - linkdir[i] = '\0'; - if (strstr(linkdir, "dasd") == NULL) + if (strstr(linkdir, "dasd") == NULL) { + free(linkdir); return FTW_CONTINUE; + } + free(linkdir); free(busiddir); busiddir = strdup(fpath); if (busiddir == NULL)