[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-ppc] [PATCH v2 2/4] ppc: fix memory leak in spapr_dt_drc()
From: |
Greg Kurz |
Subject: |
Re: [Qemu-ppc] [PATCH v2 2/4] ppc: fix memory leak in spapr_dt_drc() |
Date: |
Wed, 17 Jul 2019 12:47:14 +0200 |
On Wed, 17 Jul 2019 03:20:01 -0500
Shivaprasad G Bhat <address@hidden> wrote:
> Leaking the drc_name while preparing the DT properties.
> Fixing that.
>
> Also, remove the const qualifier from spapr_drc_name().
>
> Signed-off-by: Shivaprasad G Bhat <address@hidden>
> ---
> hw/ppc/spapr_drc.c | 7 +++++--
> 1 file changed, 5 insertions(+), 2 deletions(-)
>
> diff --git a/hw/ppc/spapr_drc.c b/hw/ppc/spapr_drc.c
> index bacadfcac5..695a0b2285 100644
> --- a/hw/ppc/spapr_drc.c
> +++ b/hw/ppc/spapr_drc.c
> @@ -226,7 +226,7 @@ static uint32_t drc_set_unusable(SpaprDrc *drc)
> return RTAS_OUT_SUCCESS;
> }
>
> -static const char *spapr_drc_name(SpaprDrc *drc)
> +static char *spapr_drc_name(SpaprDrc *drc)
> {
> SpaprDrcClass *drck = SPAPR_DR_CONNECTOR_GET_CLASS(drc);
>
> @@ -827,6 +827,7 @@ int spapr_dt_drc(void *fdt, int offset, Object *owner,
> uint32_t drc_type_mask)
> Object *obj;
> SpaprDrc *drc;
> SpaprDrcClass *drck;
> + char *drc_name = NULL;
> uint32_t drc_index, drc_power_domain;
>
> if (!strstart(prop->type, "link<", NULL)) {
> @@ -856,8 +857,10 @@ int spapr_dt_drc(void *fdt, int offset, Object *owner,
> uint32_t drc_type_mask)
> g_array_append_val(drc_power_domains, drc_power_domain);
>
> /* ibm,drc-names */
> - drc_names = g_string_append(drc_names, spapr_drc_name(drc));
> + drc_name = spapr_drc_name(drc);
> + drc_names = g_string_append(drc_names, drc_name);
> drc_names = g_string_insert_len(drc_names, -1, "\0", 1);
> + g_free(drc_name);
>
This could even be called just after g_string_append(). No big deal.
Reviewed-by: Greg Kurz <address@hidden>
> /* ibm,drc-types */
> drc_types = g_string_append(drc_types, drck->typename);
>
>