diff mbox series

[1/2] hw/s390x/ccw: Replace basename() with g_path_get_basename()

Message ID 20231221171921.57784-2-zhao1.liu@linux.intel.com (mailing list archive)
State New, archived
Headers show
Series hw/s390x/ccw: Cleanup basename() and dirname() | expand

Commit Message

Zhao Liu Dec. 21, 2023, 5:19 p.m. UTC
From: Zhao Liu <zhao1.liu@intel.com>

g_path_get_basename() is a portable utility function that has the
advantage of not modifing the string argument, so it should be
preferred over basename().

And also to avoid potential compile breakage with the Musl C library
similar to [1], replace basename() with g_path_get_basename().

[1]: https://lore.kernel.org/all/20231212010228.2701544-1-raj.khem@gmail.com/

Suggested-by: Cédric Le Goater <clg@redhat.com>
Signed-off-by: Zhao Liu <zhao1.liu@intel.com>
---
Suggested by credit:
  Cédric: Referred his description of similar cleanup in vfio/container.
---
 hw/s390x/s390-ccw.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

Comments

Cédric Le Goater Jan. 2, 2024, 8:29 a.m. UTC | #1
On 12/21/23 18:19, Zhao Liu wrote:
> From: Zhao Liu <zhao1.liu@intel.com>
> 
> g_path_get_basename() is a portable utility function that has the
> advantage of not modifing the string argument, so it should be
> preferred over basename().
> 
> And also to avoid potential compile breakage with the Musl C library
> similar to [1], replace basename() with g_path_get_basename().
> 
> [1]: https://lore.kernel.org/all/20231212010228.2701544-1-raj.khem@gmail.com/
> 
> Suggested-by: Cédric Le Goater <clg@redhat.com>
> Signed-off-by: Zhao Liu <zhao1.liu@intel.com>


Reviewed-by: Cédric Le Goater <clg@redhat.com>

Thanks,

C.


> ---
> Suggested by credit:
>    Cédric: Referred his description of similar cleanup in vfio/container.
> ---
>   hw/s390x/s390-ccw.c | 5 +++--
>   1 file changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/hw/s390x/s390-ccw.c b/hw/s390x/s390-ccw.c
> index e2d86d96e728..ab7022a3abe8 100644
> --- a/hw/s390x/s390-ccw.c
> +++ b/hw/s390x/s390-ccw.c
> @@ -76,7 +76,8 @@ static void s390_ccw_get_dev_info(S390CCWDevice *cdev,
>                                     Error **errp)
>   {
>       unsigned int cssid, ssid, devid;
> -    char dev_path[PATH_MAX] = {0}, *tmp;
> +    char dev_path[PATH_MAX] = {0};
> +    g_autofree char *tmp = NULL;
>   
>       if (!sysfsdev) {
>           error_setg(errp, "No host device provided");
> @@ -92,7 +93,7 @@ static void s390_ccw_get_dev_info(S390CCWDevice *cdev,
>   
>       cdev->mdevid = g_path_get_basename(dev_path);
>   
> -    tmp = basename(dirname(dev_path));
> +    tmp = g_path_get_basename(dirname(dev_path));
>       if (sscanf(tmp, "%2x.%1x.%4x", &cssid, &ssid, &devid) != 3) {
>           error_setg_errno(errp, errno, "Failed to read %s", tmp);
>           return;
diff mbox series

Patch

diff --git a/hw/s390x/s390-ccw.c b/hw/s390x/s390-ccw.c
index e2d86d96e728..ab7022a3abe8 100644
--- a/hw/s390x/s390-ccw.c
+++ b/hw/s390x/s390-ccw.c
@@ -76,7 +76,8 @@  static void s390_ccw_get_dev_info(S390CCWDevice *cdev,
                                   Error **errp)
 {
     unsigned int cssid, ssid, devid;
-    char dev_path[PATH_MAX] = {0}, *tmp;
+    char dev_path[PATH_MAX] = {0};
+    g_autofree char *tmp = NULL;
 
     if (!sysfsdev) {
         error_setg(errp, "No host device provided");
@@ -92,7 +93,7 @@  static void s390_ccw_get_dev_info(S390CCWDevice *cdev,
 
     cdev->mdevid = g_path_get_basename(dev_path);
 
-    tmp = basename(dirname(dev_path));
+    tmp = g_path_get_basename(dirname(dev_path));
     if (sscanf(tmp, "%2x.%1x.%4x", &cssid, &ssid, &devid) != 3) {
         error_setg_errno(errp, errno, "Failed to read %s", tmp);
         return;