mirror of
https://github.com/ipmitool/ipmitool.git
synced 2025-05-10 18:47:22 +00:00
Fix in fru edit
It is now possible to edit field 0 of sections
This commit is contained in:
parent
061272f595
commit
7fc4ce6eae
@ -111,6 +111,7 @@ char * get_fru_area_str(uint8_t * data, uint32_t * offset)
|
||||
/* bits 6:7 contain format */
|
||||
typecode = ((data[off] & 0xC0) >> 6);
|
||||
|
||||
// printf("Typecode:%i\n", typecode);
|
||||
/* bits 0:5 contain length */
|
||||
len = data[off++];
|
||||
len &= 0x3f;
|
||||
@ -4352,28 +4353,16 @@ f_type, uint8_t f_index, char *f_string)
|
||||
f_index= f_index - 0x30;
|
||||
|
||||
/*Seek to field index */
|
||||
for( i=0; i<f_index; i++ )
|
||||
for( i=0; i<=f_index; i++ )
|
||||
{
|
||||
fru_area = (uint8_t *) get_fru_area_str(fru_data, &fru_field_offset);
|
||||
fru_field_offset_tmp = fru_field_offset;
|
||||
fru_area = (uint8_t *) get_fru_area_str(fru_data, &fru_field_offset);
|
||||
}
|
||||
|
||||
if( (fru_area == NULL ) || strlen((const char *)fru_area) == 0 ) {
|
||||
printf("Field not found!\n");
|
||||
printf("Field not found !\n");
|
||||
return -1;
|
||||
}
|
||||
/* Get original field string */
|
||||
fru_field_offset_tmp = fru_field_offset;
|
||||
fru_area = (uint8_t *) get_fru_area_str(fru_data, &fru_field_offset);
|
||||
if ( (fru_area == NULL ) || strlen((const char *)fru_area) == 0 ) {
|
||||
printf("Field not found!\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
||||
if ( (fru_area == NULL ) || strlen((const char *)fru_area) == 0 ) {
|
||||
printf("Field not found!\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
if ( strlen((const char *)fru_area) == strlen((const char *)f_string) )
|
||||
{
|
||||
@ -4534,8 +4523,9 @@ ipmi_fru_set_field_string_rebuild(struct ipmi_intf * intf, uint8_t fruId,
|
||||
|
||||
/*************************
|
||||
3) Seek to field index */
|
||||
for( i=0; i<f_index; i++ )
|
||||
for( i=0; i<=f_index; i++ )
|
||||
{
|
||||
fru_field_offset_tmp = fru_field_offset;
|
||||
fru_area = (uint8_t *) get_fru_area_str(fru_data_old, &fru_field_offset);
|
||||
}
|
||||
|
||||
@ -4544,20 +4534,6 @@ ipmi_fru_set_field_string_rebuild(struct ipmi_intf * intf, uint8_t fruId,
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* Get original field string */
|
||||
fru_field_offset_tmp = fru_field_offset;
|
||||
fru_area = (uint8_t *) get_fru_area_str(fru_data_old, &fru_field_offset);
|
||||
if ( (fru_area == NULL ) || strlen((const char *)fru_area) == 0 )
|
||||
{
|
||||
printf("Field not found! (2)\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
if ( (fru_area == NULL ) || strlen((const char *)fru_area) == 0 )
|
||||
{
|
||||
printf("Field not found! (3)\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
#ifdef DBG_RESIZE_FRU
|
||||
printf("Section Length: %lu\n", fru_section_len);
|
||||
|
Loading…
x
Reference in New Issue
Block a user