# HG changeset patch # User Florian Pose # Date 1325778443 -3600 # Node ID 1b583b3110cb6aa4f1b53090c2e7fe68b1911667 # Parent 3fe304fea395394d6bf186eea72b8adbc8e7a42f Allow CoE OD List Segments to have 6 bytes instead of 8. diff -r 3fe304fea395 -r 1b583b3110cb master/fsm_coe.c --- a/master/fsm_coe.c Wed Jan 04 18:05:38 2012 +0100 +++ b/master/fsm_coe.c Thu Jan 05 16:47:23 2012 +0100 @@ -507,16 +507,16 @@ return; } - if (rec_size < 8 || rec_size % 2) { - EC_SLAVE_ERR(slave, "Invalid data size %zu!\n", rec_size); - ec_print_data(data, rec_size); - fsm->state = ec_fsm_coe_error; - return; - } - first_segment = list_empty(&slave->sdo_dictionary) ? true : false; index_list_offset = first_segment ? 8 : 6; + if (rec_size < index_list_offset || rec_size % 2) { + EC_SLAVE_ERR(slave, "Invalid data size %zu !\n", rec_size); + ec_print_data(data, rec_size); + fsm->state = ec_fsm_coe_error; + return; + } + sdo_count = (rec_size - index_list_offset) / 2; for (i = 0; i < sdo_count; i++) {