Message ID | 20231221171921.57784-3-zhao1.liu@linux.intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | hw/s390x/ccw: Cleanup basename() and dirname() | expand |
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;
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;