From 1b1bdb15752b1b30e11a63b326142d28346f84c8 Mon Sep 17 00:00:00 2001
From: Florian Pose <fp@igh-essen.com>
Date: Tue, 3 Jun 2008 12:04:00 +0000
Subject: [PATCH] Check for matching data size when reading Sdo entries via
 sysfs.

---
 master/sdo_entry.c | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/master/sdo_entry.c b/master/sdo_entry.c
index 8e80f379..ef137dfe 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)
-- 
GitLab