Message ID | 1471429443-22797-1-git-send-email-colin.king@canonical.com |
---|---|
State | Accepted |
Headers | show |
On 2016-08-17 06:24 PM, Colin King wrote: > From: Colin Ian King <colin.king@canonical.com> > > Minor fix, ensure we don't do void * pointer arithmetic as the behaviour > is undefined (even though most compilers assume it is a char * sized). > Cast to char * before doing the addition. > > Signed-off-by: Colin Ian King <colin.king@canonical.com> > --- > src/lib/src/fwts_smbios.c | 10 +++++----- > 1 file changed, 5 insertions(+), 5 deletions(-) > > diff --git a/src/lib/src/fwts_smbios.c b/src/lib/src/fwts_smbios.c > index 73b3f2b..fb814b2 100644 > --- a/src/lib/src/fwts_smbios.c > +++ b/src/lib/src/fwts_smbios.c > @@ -124,8 +124,8 @@ static void *fwts_smbios_find_entry_bios(fwts_framework *fw, fwts_smbios_entry * > (*(mem+i+2) == 'M') && > (*(mem+i+3) == '_') && > (fwts_checksum(mem + i, 16) == 0)) { > - addr = (void*)FWTS_SMBIOS_REGION_START + i; > - memcpy(entry, (void*)(mem + i), sizeof(fwts_smbios_entry)); > + addr = (void *)((uint8_t *)FWTS_SMBIOS_REGION_START + i); > + memcpy(entry, (void *)(mem + i), sizeof(fwts_smbios_entry)); > *type = FWTS_SMBIOS; > break; > } > @@ -137,8 +137,8 @@ static void *fwts_smbios_find_entry_bios(fwts_framework *fw, fwts_smbios_entry * > (*(mem+i+4) == '_') && > (fwts_checksum(mem + i, 15) == 0)) { > memset(entry, 0, 16); > - addr = (void*)FWTS_SMBIOS_REGION_START + i; > - memcpy(16+((void*)entry), (void*)(mem + i), 15); > + addr = (void *)((uint8_t *)FWTS_SMBIOS_REGION_START + i); > + memcpy(16 + ((uint8_t *)entry), (void *)(mem + i), 15); > *type = FWTS_SMBIOS_DMI_LEGACY; > break; > } > @@ -172,7 +172,7 @@ static void *fwts_smbios30_find_entry_bios(fwts_framework *fw, fwts_smbios30_ent > (*(mem+i+3) == '3') && > (*(mem+i+4) == '_') && > (fwts_checksum(mem + i, 24 ) == 0)) { > - addr = (void *)FWTS_SMBIOS_REGION_START + i; > + addr = (void *)((uint8_t *)FWTS_SMBIOS_REGION_START + i); > memcpy(entry, (void*)(mem + i), sizeof(fwts_smbios30_entry)); > break; > } > Acked-by: Alex Hung <alex.hung@canonical.com>
On 2016年08月17日 18:24, Colin King wrote: > From: Colin Ian King <colin.king@canonical.com> > > Minor fix, ensure we don't do void * pointer arithmetic as the behaviour > is undefined (even though most compilers assume it is a char * sized). > Cast to char * before doing the addition. > > Signed-off-by: Colin Ian King <colin.king@canonical.com> > --- > src/lib/src/fwts_smbios.c | 10 +++++----- > 1 file changed, 5 insertions(+), 5 deletions(-) > > diff --git a/src/lib/src/fwts_smbios.c b/src/lib/src/fwts_smbios.c > index 73b3f2b..fb814b2 100644 > --- a/src/lib/src/fwts_smbios.c > +++ b/src/lib/src/fwts_smbios.c > @@ -124,8 +124,8 @@ static void *fwts_smbios_find_entry_bios(fwts_framework *fw, fwts_smbios_entry * > (*(mem+i+2) == 'M') && > (*(mem+i+3) == '_') && > (fwts_checksum(mem + i, 16) == 0)) { > - addr = (void*)FWTS_SMBIOS_REGION_START + i; > - memcpy(entry, (void*)(mem + i), sizeof(fwts_smbios_entry)); > + addr = (void *)((uint8_t *)FWTS_SMBIOS_REGION_START + i); > + memcpy(entry, (void *)(mem + i), sizeof(fwts_smbios_entry)); > *type = FWTS_SMBIOS; > break; > } > @@ -137,8 +137,8 @@ static void *fwts_smbios_find_entry_bios(fwts_framework *fw, fwts_smbios_entry * > (*(mem+i+4) == '_') && > (fwts_checksum(mem + i, 15) == 0)) { > memset(entry, 0, 16); > - addr = (void*)FWTS_SMBIOS_REGION_START + i; > - memcpy(16+((void*)entry), (void*)(mem + i), 15); > + addr = (void *)((uint8_t *)FWTS_SMBIOS_REGION_START + i); > + memcpy(16 + ((uint8_t *)entry), (void *)(mem + i), 15); > *type = FWTS_SMBIOS_DMI_LEGACY; > break; > } > @@ -172,7 +172,7 @@ static void *fwts_smbios30_find_entry_bios(fwts_framework *fw, fwts_smbios30_ent > (*(mem+i+3) == '3') && > (*(mem+i+4) == '_') && > (fwts_checksum(mem + i, 24 ) == 0)) { > - addr = (void *)FWTS_SMBIOS_REGION_START + i; > + addr = (void *)((uint8_t *)FWTS_SMBIOS_REGION_START + i); > memcpy(entry, (void*)(mem + i), sizeof(fwts_smbios30_entry)); > break; > } > Acked-by: Ivan Hu <ivan.hu@canonical.com>
diff --git a/src/lib/src/fwts_smbios.c b/src/lib/src/fwts_smbios.c index 73b3f2b..fb814b2 100644 --- a/src/lib/src/fwts_smbios.c +++ b/src/lib/src/fwts_smbios.c @@ -124,8 +124,8 @@ static void *fwts_smbios_find_entry_bios(fwts_framework *fw, fwts_smbios_entry * (*(mem+i+2) == 'M') && (*(mem+i+3) == '_') && (fwts_checksum(mem + i, 16) == 0)) { - addr = (void*)FWTS_SMBIOS_REGION_START + i; - memcpy(entry, (void*)(mem + i), sizeof(fwts_smbios_entry)); + addr = (void *)((uint8_t *)FWTS_SMBIOS_REGION_START + i); + memcpy(entry, (void *)(mem + i), sizeof(fwts_smbios_entry)); *type = FWTS_SMBIOS; break; } @@ -137,8 +137,8 @@ static void *fwts_smbios_find_entry_bios(fwts_framework *fw, fwts_smbios_entry * (*(mem+i+4) == '_') && (fwts_checksum(mem + i, 15) == 0)) { memset(entry, 0, 16); - addr = (void*)FWTS_SMBIOS_REGION_START + i; - memcpy(16+((void*)entry), (void*)(mem + i), 15); + addr = (void *)((uint8_t *)FWTS_SMBIOS_REGION_START + i); + memcpy(16 + ((uint8_t *)entry), (void *)(mem + i), 15); *type = FWTS_SMBIOS_DMI_LEGACY; break; } @@ -172,7 +172,7 @@ static void *fwts_smbios30_find_entry_bios(fwts_framework *fw, fwts_smbios30_ent (*(mem+i+3) == '3') && (*(mem+i+4) == '_') && (fwts_checksum(mem + i, 24 ) == 0)) { - addr = (void *)FWTS_SMBIOS_REGION_START + i; + addr = (void *)((uint8_t *)FWTS_SMBIOS_REGION_START + i); memcpy(entry, (void*)(mem + i), sizeof(fwts_smbios30_entry)); break; }