ID: 3608765 - 'lib/ipmi_ekanalyzer.c' - multiple increments in args to printf()

Performing prefix or postfix increments, eg. ++var or var++, in the
arguments to printf is inherently non-portable and may give different
results on different platforms.
Commit mends this issue.

Commit for Dan Gora
This commit is contained in:
Zdenek Styblik 2013-04-09 10:20:02 +00:00
parent 87e6c7279d
commit f074f76620

View File

@ -3031,9 +3031,10 @@ ipmi_ek_display_address_table_record( struct ipmi_ek_multi_header * record )
for ( i = 0; i < entries; i++ ){ for ( i = 0; i < entries; i++ ){
printf("\tHWAddr: 0x%02x - SiteNum: 0x%02x - SiteType: 0x%02x \n", printf("\tHWAddr: 0x%02x - SiteNum: 0x%02x - SiteType: 0x%02x \n",
record->data[offset++], record->data[offset+0],
record->data[offset++], record->data[offset+1],
record->data[offset++]); record->data[offset+2]);
offset += 3;
} }
} }
@ -3151,24 +3152,24 @@ static void
ipmi_ek_display_shelf_ip_connection_record( ipmi_ek_display_shelf_ip_connection_record(
struct ipmi_ek_multi_header * record ) struct ipmi_ek_multi_header * record )
{ {
int offset = START_DATA_OFFSET; int ioffset = START_DATA_OFFSET;
if (offset > record->header.len){ if (ioffset > record->header.len) {
printf(" Shelf Manager IP Address: %d.%d.%d.%d\n", printf(" Shelf Manager IP Address: %d.%d.%d.%d\n",
record->data[offset++], record->data[offset++], record->data[ioffset+0], record->data[ioffset+1],
record->data[offset++], record->data[offset++] record->data[ioffset+2], record->data[ioffset+3]);
); ioffset += 4;
} }
if (offset > record->header.len){ if (ioffset > record->header.len) {
printf(" Default Gateway Address: %d.%d.%d.%d\n", printf(" Default Gateway Address: %d.%d.%d.%d\n",
record->data[offset++], record->data[offset++], record->data[ioffset+0], record->data[ioffset+1],
record->data[offset++], record->data[offset++] record->data[ioffset+2], record->data[ioffset+3]);
); ioffset += 4;
} }
if (offset > record->header.len){ if (ioffset > record->header.len) {
printf(" Subnet Mask: %d.%d.%d.%d\n", record->data[offset++], printf(" Subnet Mask: %d.%d.%d.%d\n",
record->data[offset++], record->data[offset++], record->data[ioffset+0], record->data[ioffset+1],
record->data[offset++] record->data[ioffset+2], record->data[ioffset+3]);
); ioffset += 4;
} }
} }
@ -3194,22 +3195,22 @@ static void
ipmi_ek_display_shelf_fan_geography_record( ipmi_ek_display_shelf_fan_geography_record(
struct ipmi_ek_multi_header * record ) struct ipmi_ek_multi_header * record )
{ {
int offset = START_DATA_OFFSET; int ioffset = START_DATA_OFFSET;
unsigned char fan_count = 0; unsigned char fan_count = 0;
fan_count = record->data[offset]; fan_count = record->data[ioffset];
offset ++; ioffset++;
printf(" Fan-to-FRU Entry Count: 0x%02x\n", fan_count); printf(" Fan-to-FRU Entry Count: 0x%02x\n", fan_count);
while ( (fan_count > 0) && (offset <= record->header.len) ){ while ( (fan_count > 0) && (ioffset <= record->header.len) ) {
printf(" Fan-to-FRU Mapping Entry: {%2x%2x%2x%2x}\n", printf(" Fan-to-FRU Mapping Entry: {%2x%2x%2x%2x}\n",
record->data[offset], record->data[offset+1], record->data[ioffset], record->data[ioffset+1],
record->data[offset+2], record->data[offset+3] record->data[ioffset+2], record->data[ioffset+3]
); );
printf(" Hardware Address: 0x%02x\n", record->data[offset++]); printf(" Hardware Address: 0x%02x\n", record->data[ioffset++]);
printf(" FRU device ID: 0x%02x\n", record->data[offset++]); printf(" FRU device ID: 0x%02x\n", record->data[ioffset++]);
printf(" Site Number: 0x%02x\n", record->data[offset++]); printf(" Site Number: 0x%02x\n", record->data[ioffset++]);
printf(" Site Type: 0x%02x\n", record->data[offset++]); printf(" Site Type: 0x%02x\n", record->data[ioffset++]);
fan_count --; fan_count --;
} }