On Mon, 4 Mar 2024 11:44:04 +0100
Thomas Huth <thuth@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 <thuth@redhat.com>
Reviewed-by: Jonathan Cameron <Jonathan.Cameron@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++];
> }