diff --git a/master/sdo_entry.c b/master/sdo_entry.c index 8e80f379d367a18bfcc3cd594ee1339c6474d1f7..ef137dfe85eea5f9cac79df11366b8be3c54ee8b 100644 --- a/master/sdo_entry.c +++ b/master/sdo_entry.c @@ -185,6 +185,15 @@ ssize_t ec_sdo_entry_format_data( off_t off = 0; unsigned int i; + if (request->data_size != entry->bit_length) { + EC_ERR("Dictionary size of Sdo entry 0x%04X:%02X (%u bit) does not " + "match size of uploaded data (%u byte)!\n", entry->sdo->index, + entry->subindex, entry->bit_length, request->data_size); + EC_DBG("Uploaded data:\n"); + ec_print_data(request->data, request->data_size); + return -EIO; + } + if (entry->data_type == 0x0002) { // int8 int8_t value; if (entry->bit_length != 8)