--- openhpi-0.7.0/plugins/snmp_client/snmp_client_get_rdrs.c.orig 2004-02-22 02:28:11.000000000 +0000 +++ openhpi-0.7.0/plugins/snmp_client/snmp_client_get_rdrs.c 2004-02-22 03:10:15.000000000 +0000 @@ -317,9 +317,8 @@ if (vars->type == ASN_OCTET_STR) { /* local variables used by case statements */ - int *data; + int data; /* 32-bit */ char *repeat; - int *stream_data; char *text_info; char *oem_data; @@ -339,18 +338,12 @@ ntohl(sahpi_ctr_cap[i].CtrlRec.TypeUnion.Discrete.Default); break; case SAHPI_CTRL_TYPE_ANALOG: - data = (int *)(void *)vars->val.string; - sahpi_ctr_cap[i].CtrlRec.TypeUnion.Analog.Min = *data; - sahpi_ctr_cap[i].CtrlRec.TypeUnion.Analog.Min = - ntohl(sahpi_ctr_cap[i].CtrlRec.TypeUnion.Analog.Min); - data++; - sahpi_ctr_cap[i].CtrlRec.TypeUnion.Analog.Max = *data; - sahpi_ctr_cap[i].CtrlRec.TypeUnion.Analog.Max = - ntohl(sahpi_ctr_cap[i].CtrlRec.TypeUnion.Analog.Max); - data++; - sahpi_ctr_cap[i].CtrlRec.TypeUnion.Analog.Default = *data; - sahpi_ctr_cap[i].CtrlRec.TypeUnion.Analog.Default = - ntohl(sahpi_ctr_cap[i].CtrlRec.TypeUnion.Analog.Default); + memcpy(&data, vars->val.string, sizeof(int)); + sahpi_ctr_cap[i].CtrlRec.TypeUnion.Analog.Min = ntohl(data); + memcpy(&data, vars->val.string + sizeof(int), sizeof(int)); + sahpi_ctr_cap[i].CtrlRec.TypeUnion.Analog.Max = ntohl(data); + memcpy(&data, vars->val.string + 2*sizeof(int), sizeof(int)); + sahpi_ctr_cap[i].CtrlRec.TypeUnion.Analog.Default = ntohl(data); break; case SAHPI_CTRL_TYPE_STREAM: /* set repeat */ @@ -359,17 +352,16 @@ repeat, sizeof(sahpi_ctr_cap[i].CtrlRec.TypeUnion.Stream.Default.Repeat)); repeat++; - stream_data = (int *)(void *)repeat; /* set .StreamLength */ memcpy(&sahpi_ctr_cap[i].CtrlRec.TypeUnion.Stream.Default.StreamLength, - stream_data, + repeat, sizeof(sahpi_ctr_cap[i].CtrlRec.TypeUnion.Stream.Default.StreamLength)); sahpi_ctr_cap[i].CtrlRec.TypeUnion.Stream.Default.StreamLength = ntohs(sahpi_ctr_cap[i].CtrlRec.TypeUnion.Stream.Default.StreamLength); - stream_data++; + repeat += sizeof(int); /* set the .Stream data */ memcpy(&sahpi_ctr_cap[i].CtrlRec.TypeUnion.Stream.Default.Stream, - stream_data, + repeat, SAHPI_CTRL_MAX_STREAM_LENGTH); break; case SAHPI_CTRL_TYPE_TEXT: --- openhpi-0.7.0/plugins/dummy/dummy.c.orig 2004-02-04 03:15:11.000000000 +0000 +++ openhpi-0.7.0/plugins/dummy/dummy.c 2004-02-22 03:47:54.000000000 +0000 @@ -1355,6 +1355,8 @@ return(rval); } +#define align(x) (((x) + sizeof(long) - 1) & (-sizeof(long))) + static int dummy_get_inventory_info(void *hnd, SaHpiResourceIdT id, SaHpiEirIdT num, SaHpiInventoryDataT *data) @@ -1386,8 +1388,8 @@ for (i=0,pos=0; inventory->DataRecords[i]!=NULL; i++) { /* FIXME:: very dirty hack to make code compile on IA64 */ - data->DataRecords[i] = (SaHpiInventDataRecordT *)(void *)&inventory->data[pos]; - pos+=inventory->DataRecords[i]->DataLength+8; + data->DataRecords[i] = (SaHpiInventDataRecordT *)(void *)&inventory->data[pos]; + pos=align(pos + inventory->DataRecords[i]->DataLength+8); } } @@ -1427,9 +1429,9 @@ for (i=0, pos=0; data->DataRecords[i] != NULL; i++) { /* FIXME:: very dirty hack to make code compile on IA64 */ - inventory->DataRecords[i] = (SaHpiInventDataRecordT *)(void *)&inventory->data[pos]; + inventory->DataRecords[i] = (SaHpiInventDataRecordT *)(void *)&inventory->data[pos]; memcpy(inventory->DataRecords[i], data->DataRecords[i], data->DataRecords[i]->DataLength+8); - pos+=data->DataRecords[i]->DataLength+8; + pos=align(pos + data->DataRecords[i]->DataLength+8); } inventory->DataRecords[i] = NULL; } --- openhpi-0.7.0/plugins/ipmidirect/ipmi.cpp.orig 2004-02-04 03:15:11.000000000 +0000 +++ openhpi-0.7.0/plugins/ipmidirect/ipmi.cpp 2004-02-22 13:36:05.000000000 +0000 @@ -908,7 +908,8 @@ } memcpy( &lan_addr, ent->h_addr_list[0], ent->h_length ); - unsigned int a = *(unsigned int *)(void *)ent->h_addr_list[0]; + unsigned int a; + memcpy(&a, ent->h_addr_list[0], sizeof(a)); IpmiLog( "Using host at %d.%d.%d.%d.\n", a & 0xff, (a >> 8 ) & 0xff, --- openhpi-0.7.0/plugins/snmp_bc/t/snmp_bc_inventory.c.orig 2004-02-04 03:15:12.000000000 +0000 +++ openhpi-0.7.0/plugins/snmp_bc/t/snmp_bc_inventory.c 2004-02-22 15:55:48.000000000 +0000 @@ -754,8 +754,8 @@ l_data = data; l_data->Validity = SAHPI_INVENT_DATA_INVALID; - l_data->DataRecords[0] = (SaHpiInventDataRecordT *)l_data + sizeof(SaHpiInventoryDataT) + - sizeof(l_data->DataRecords[0])+ sizeof(SaHpiInventDataRecordT); + l_data->DataRecords[0] = (SaHpiInventDataRecordT *)(void*)(((char*)l_data) + sizeof(SaHpiInventoryDataT) + + sizeof(l_data->DataRecords[0])+ sizeof(SaHpiInventDataRecordT)); l_data->DataRecords[1] = NULL; if(rdr != NULL) { --- openhpi-0.7.0/plugins/snmp_bc/snmp_bc_inventory.c.orig 2004-02-04 03:15:12.000000000 +0000 +++ openhpi-0.7.0/plugins/snmp_bc/snmp_bc_inventory.c 2004-02-22 16:00:31.000000000 +0000 @@ -754,8 +754,8 @@ l_data = data; l_data->Validity = SAHPI_INVENT_DATA_INVALID; - l_data->DataRecords[0] = (SaHpiInventDataRecordT *)l_data + sizeof(SaHpiInventoryDataT) + - sizeof(l_data->DataRecords[0])+ sizeof(SaHpiInventDataRecordT); + l_data->DataRecords[0] = (SaHpiInventDataRecordT *)(void*)(((char*)l_data) + sizeof(SaHpiInventoryDataT) + + sizeof(l_data->DataRecords[0])+ sizeof(SaHpiInventDataRecordT)); l_data->DataRecords[1] = NULL; if(rdr != NULL) { --- openhpi-0.6.0/plugins/ipmidirect/ipmi_log.cpp.orig 2004-01-26 08:29:00.000000000 +0000 +++ openhpi-0.6.0/plugins/ipmidirect/ipmi_log.cpp 2004-02-22 16:06:31.000000000 +0000 @@ -181,7 +181,7 @@ char b[dTimeStringSize+5]; IpmiTimeToString( tv.tv_sec, b ); - sprintf( b + dTimeStringSize - 1, ".%03ld ", tv.tv_usec / 1000 ); + sprintf( b + dTimeStringSize - 1, ".%03ld ", (long)(tv.tv_usec / 1000) ); Output( b ); }