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;