[PATCH 2/2] hw/s390x/ccw: Replace dirname() with g_path_get_dirname()

Zhao Liu posted 2 patches 11 months, 1 week ago
Maintainers: Eric Farman <farman@linux.ibm.com>, Matthew Rosato <mjrosato@linux.ibm.com>, Thomas Huth <thuth@redhat.com>, Halil Pasic <pasic@linux.ibm.com>, Christian Borntraeger <borntraeger@linux.ibm.com>, Richard Henderson <richard.henderson@linaro.org>, David Hildenbrand <david@redhat.com>, Ilya Leoshkevich <iii@linux.ibm.com>
[PATCH 2/2] hw/s390x/ccw: Replace dirname() with g_path_get_dirname()
Posted by Zhao Liu 11 months, 1 week ago
From: Zhao Liu <zhao1.liu@intel.com>

As commit 3e015d815b3f ("use g_path_get_basename instead of basename")
said, g_path_get_dirname() should be preferred over dirname() since
the former is a portable utility function that has the advantage of not
modifing the string argument.

Replace dirname() with g_path_get_dirname().

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 words for g_path_get_basename() and
          g_path_get_dirname() has the same advantage.
---
 hw/s390x/s390-ccw.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/hw/s390x/s390-ccw.c b/hw/s390x/s390-ccw.c
index ab7022a3abe8..5261e66724f1 100644
--- a/hw/s390x/s390-ccw.c
+++ b/hw/s390x/s390-ccw.c
@@ -77,6 +77,7 @@ static void s390_ccw_get_dev_info(S390CCWDevice *cdev,
 {
     unsigned int cssid, ssid, devid;
     char dev_path[PATH_MAX] = {0};
+    g_autofree char *tmp_dir = NULL;
     g_autofree char *tmp = NULL;
 
     if (!sysfsdev) {
@@ -93,7 +94,8 @@ static void s390_ccw_get_dev_info(S390CCWDevice *cdev,
 
     cdev->mdevid = g_path_get_basename(dev_path);
 
-    tmp = g_path_get_basename(dirname(dev_path));
+    tmp_dir = g_path_get_dirname(dev_path);
+    tmp = g_path_get_basename(tmp_dir);
     if (sscanf(tmp, "%2x.%1x.%4x", &cssid, &ssid, &devid) != 3) {
         error_setg_errno(errp, errno, "Failed to read %s", tmp);
         return;
-- 
2.34.1


Re: [PATCH 2/2] hw/s390x/ccw: Replace dirname() with g_path_get_dirname()
Posted by Cédric Le Goater 10 months, 4 weeks ago
On 12/21/23 18:19, Zhao Liu wrote:
> From: Zhao Liu <zhao1.liu@intel.com>
> 
> As commit 3e015d815b3f ("use g_path_get_basename instead of basename")
> said, g_path_get_dirname() should be preferred over dirname() since
> the former is a portable utility function that has the advantage of not
> modifing the string argument.
> 
> Replace dirname() with g_path_get_dirname().
> 
> 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 words for g_path_get_basename() and
>            g_path_get_dirname() has the same advantage.
> ---
>   hw/s390x/s390-ccw.c | 4 +++-
>   1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/hw/s390x/s390-ccw.c b/hw/s390x/s390-ccw.c
> index ab7022a3abe8..5261e66724f1 100644
> --- a/hw/s390x/s390-ccw.c
> +++ b/hw/s390x/s390-ccw.c
> @@ -77,6 +77,7 @@ static void s390_ccw_get_dev_info(S390CCWDevice *cdev,
>   {
>       unsigned int cssid, ssid, devid;
>       char dev_path[PATH_MAX] = {0};
> +    g_autofree char *tmp_dir = NULL;
>       g_autofree char *tmp = NULL;
>   
>       if (!sysfsdev) {
> @@ -93,7 +94,8 @@ static void s390_ccw_get_dev_info(S390CCWDevice *cdev,
>   
>       cdev->mdevid = g_path_get_basename(dev_path);
>   
> -    tmp = g_path_get_basename(dirname(dev_path));
> +    tmp_dir = g_path_get_dirname(dev_path);
> +    tmp = g_path_get_basename(tmp_dir);
>       if (sscanf(tmp, "%2x.%1x.%4x", &cssid, &ssid, &devid) != 3) {
>           error_setg_errno(errp, errno, "Failed to read %s", tmp);
>           return;