
[snip]
diff --git a/src/rpc/virnetsocket.c b/src/rpc/virnetsocket.c index f072afe857..16a527e399 100644 --- a/src/rpc/virnetsocket.c +++ b/src/rpc/virnetsocket.c @@ -55,7 +55,6 @@ #include "virprobe.h" #include "virprocess.h" #include "virstring.h" -#include "dirname.h" #include "passfd.h"
#if WITH_SSH2 @@ -668,7 +667,7 @@ int virNetSocketNewConnectUNIX(const char *path, remoteAddr.len = sizeof(remoteAddr.data.un);
if (spawnDaemon) { - const char *binname; + g_autofree char *binname = NULL;
if (spawnDaemon && !binary) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", @@ -677,7 +676,7 @@ int virNetSocketNewConnectUNIX(const char *path, goto cleanup; }
- if (!(binname = last_component(binary)) || binname[0] == '\0') { + if (!(binname = g_path_get_basename(binary)) || binname[0] == '\0') {
IIUC, this check is no longer valid. According to the g_path_get_basename() documentation "If file_name ends with a directory separator it gets the component before the last slash. If file_name consists only of directory separators (and on Windows, possibly a drive letter), a single separator is returned. If file_name is empty, it gets "."." Knowing that, shouldn't we adapt the check accordingly? [snip]
diff --git a/src/util/virmdev.c b/src/util/virmdev.c index cd52a91ffd..c2499c0a20 100644 --- a/src/util/virmdev.c +++ b/src/util/virmdev.c @@ -18,7 +18,6 @@
#include <config.h>
-#include "dirname.h" #include "virmdev.h" #include "virlog.h" #include "virerror.h" @@ -207,6 +206,7 @@ char * virMediatedDeviceGetIOMMUGroupDev(const char *uuidstr) { g_autofree char *result_path = NULL; + g_autofree char *result_file = NULL; g_autofree char *iommu_path = NULL; g_autofree char *dev_path = virMediatedDeviceGetSysfsPath(uuidstr); char *vfio_path = NULL; @@ -226,7 +226,9 @@ virMediatedDeviceGetIOMMUGroupDev(const char *uuidstr) return NULL; }
- vfio_path = g_strdup_printf("/dev/vfio/%s", last_component(result_path)); + result_file = g_path_get_basename(result_path); + + vfio_path = g_strdup_printf("/dev/vfio/%s", result_file);
Please, while changing it, use g_build_filename() instead of g_strdup_printf(). [snip]