ACK: [PATCH 1/5] acpi: acpidump: avoid using void * pointer arithmetic

Alex Hung alex.hung at canonical.com
Tue Sep 16 02:02:12 UTC 2014


On 14-09-11 10:05 PM, Colin King wrote:
> From: Colin Ian King <colin.king at canonical.com>
>
> cppcheck reports:
>    When using void pointers in calculations, the behaviour is undefined
>
> Signed-off-by: Colin Ian King <colin.king at canonical.com>
> ---
>   src/acpi/acpidump/acpidump.c | 8 ++++++--
>   1 file changed, 6 insertions(+), 2 deletions(-)
>
> diff --git a/src/acpi/acpidump/acpidump.c b/src/acpi/acpidump/acpidump.c
> index 7f92e92..7b45932 100644
> --- a/src/acpi/acpidump/acpidump.c
> +++ b/src/acpi/acpidump/acpidump.c
> @@ -127,6 +127,7 @@ static uint64_t apci_dump_get_uint64_t(
>   {
>   	uint64_t ret = 0;
>   	uint64_t mask = (1ULL << (uint64_t)info->bit_field_nbits) - 1;
> +	uint8_t *ptr;
>   	int i;
>   
>   	switch (info->size) {
> @@ -138,8 +139,9 @@ static uint64_t apci_dump_get_uint64_t(
>   		break;
>   	default:		
>   		ret = 0;
> +		ptr = (uint8_t *)data;
>   		for (i = 0; (i < info->size) && (i < 8); i++) {
> -			uint8_t val8 = *(uint8_t *)data++;
> +			uint8_t val8 = *ptr++;
>   			ret = (ret << 8) | val8;
>   		}
>   		break;
> @@ -156,6 +158,7 @@ static void acpi_dump_uint(
>   {
>   	int i, hexdigits = info->size << 1;
>   	uint64_t val = apci_dump_get_uint64_t(info, data);
> +	uint8_t *ptr;
>   
>   	switch (info->size) {
>   	case 1:
> @@ -172,8 +175,9 @@ static void acpi_dump_uint(
>   				hexdigits, hexdigits, val);
>   		break;
>   	default:		
> +		ptr = (uint8_t *)data;
>   		for (i = 0; i < info->size; i++) {
> -			uint8_t val8 = *(uint8_t *)data++;
> +			uint8_t val8 = *ptr++;
>   			fwts_log_info_verbatum(fw, "%s 0x%2.2x [%d]",
>   				acpi_dump_field_info(info->label, info->size, info->offset + offset), val8, i);
>   		}

Acked-by: Alex Hung <alex.hung at canonical.com>



More information about the fwts-devel mailing list