I think it's a bug
When editing FRU, if the length of the field being modified does not match the original field, "ipmi_fru_set_field_string_rebuild" will be executed. This function returns 1 if successfully, yet the current logic sets rc= -1, resulting in the ipmitool command returning EXIT_FAILURE as its exit code.
Please see the code in ipmitool/lib/ipmi_fru.c:
image
I if "ipmi_fru_set_field_string_rebuild" returns 1, rc will be set 1
I think it's a bug
When editing FRU, if the length of the field being modified does not match the original field, "**_ipmi_fru_set_field_string_rebuild_**" will be executed. This function returns 1 if successfully, yet the current logic sets **_rc= -1_**, resulting in the ipmitool command returning _EXIT_FAILURE_ as its exit code.
Please see the code in _ipmitool/lib/ipmi_fru.c_:

I if "**_ipmi_fru_set_field_string_rebuild_**" returns 1, rc will be set 1