On Mon,  4 Mar 2024 11:44:04 +0100
Thomas Huth <th...@redhat.com> wrote:

> When setting GLIB_VERSION_MAX_ALLOWED to GLIB_VERSION_2_58 or higher
> (which we'll certainly do in the not too distant future), glib adds
> type safety checks to the g_steal_pointer() macro. This trigger an
> error in the ct3_load_cdat() function: The local char *buf variable is
> assigned to uint8_t *buf in CDATObject, i.e. a pointer of a different
> type. Change the local variable to the same type as buf in CDATObject
> to avoid the error.
> 
> Signed-off-by: Thomas Huth <th...@redhat.com>

Reviewed-by: Jonathan Cameron <jonathan.came...@huawei.com>

> ---
>  hw/cxl/cxl-cdat.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/hw/cxl/cxl-cdat.c b/hw/cxl/cxl-cdat.c
> index 2fea975671..551545f782 100644
> --- a/hw/cxl/cxl-cdat.c
> +++ b/hw/cxl/cxl-cdat.c
> @@ -114,7 +114,7 @@ static void ct3_build_cdat(CDATObject *cdat, Error **errp)
>  static void ct3_load_cdat(CDATObject *cdat, Error **errp)
>  {
>      g_autofree CDATEntry *cdat_st = NULL;
> -    g_autofree char *buf = NULL;
> +    g_autofree uint8_t *buf = NULL;
>      uint8_t sum = 0;
>      int num_ent;
>      int i = 0, ent = 1;
> @@ -171,7 +171,7 @@ static void ct3_load_cdat(CDATObject *cdat, Error **errp)
>          cdat_st[ent].base = hdr;
>          cdat_st[ent].length = hdr->length;
>  
> -        while (buf + i < (char *)cdat_st[ent].base + cdat_st[ent].length) {
> +        while (buf + i < (uint8_t *)cdat_st[ent].base + cdat_st[ent].length) 
> {
>              assert(i < file_size);
>              sum += buf[i++];
>          }


Reply via email to