From ef3a09499f918d575493915fd80f0d6bb232fb88 Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Tue, 12 May 2020 16:55:59 +0200 Subject: [PATCH] build: fix void* use in pointer maths Summary: void* is an invalid type for calculating pointer offsets, so ensure that this is always cast to something else (e.g., char*) in the few cases where it's been misused Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D11816 --- src/lib/eina/eina_accessor.c | 12 ++++++------ .../engines/wayland/ecore_evas_wayland_common.c | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/lib/eina/eina_accessor.c b/src/lib/eina/eina_accessor.c index 67494987a9..812da5c9c1 100644 --- a/src/lib/eina/eina_accessor.c +++ b/src/lib/eina/eina_accessor.c @@ -205,20 +205,20 @@ struct _Eina_Accessor_CArray_Length static Eina_Bool eina_carray_length_accessor_get_at(Eina_Accessor_CArray_Length *accessor, unsigned int idx, void **data) { - if (accessor->array + idx*accessor->step >= accessor->end) + if ((char*)accessor->array + idx*accessor->step >= (char*)accessor->end) return EINA_FALSE; - memcpy(data, (void*) accessor->array + idx*accessor->step, accessor->step); + memcpy(data, (char*) accessor->array + idx*accessor->step, accessor->step); return EINA_TRUE; } static Eina_Bool eina_carray_length_accessor_ptr_get_at(Eina_Accessor_CArray_Length *accessor, unsigned int idx, void **data) { - if (accessor->array + idx*accessor->step >= accessor->end) + if ((char*)accessor->array + idx*accessor->step >= (char*)accessor->end) return EINA_FALSE; - *data = (((void*)accessor->array) + idx*accessor->step); + *data = (((char*)accessor->array) + idx*accessor->step); return EINA_TRUE; } @@ -246,7 +246,7 @@ eina_carray_length_accessor_new(void** array, unsigned int step, unsigned int le EINA_MAGIC_SET(&accessor->accessor, EINA_MAGIC_ACCESSOR); accessor->array = array; - accessor->end = accessor->array + length * step; + accessor->end = (void**)((char*)accessor->array + length * step); accessor->step = step; accessor->accessor.version = EINA_ACCESSOR_VERSION; @@ -269,7 +269,7 @@ eina_carray_length_ptr_accessor_new(void** array, unsigned int step, unsigned in EINA_MAGIC_SET(&accessor->accessor, EINA_MAGIC_ACCESSOR); accessor->array = array; - accessor->end = accessor->array + length * step; + accessor->end = (void**)((char*)accessor->array + length * step); accessor->step = step; accessor->accessor.version = EINA_ACCESSOR_VERSION; diff --git a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c index 4722663e38..bd1022e3e5 100644 --- a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c +++ b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c @@ -2588,7 +2588,7 @@ _write_to_fd(void *data, Ecore_Fd_Handler *fd_handler) fd = ecore_main_fd_handler_fd_get(fd_handler); if (fd < 0) goto end; - len = write(fd, slice->slice.mem + slice->written_bytes, + len = write(fd, (char*)slice->slice.mem + slice->written_bytes, slice->slice.len - slice->written_bytes); slice->written_bytes += len;