diff options
Diffstat (limited to 'utils/imxtools/scsitools/stmp_scsi.c')
-rw-r--r-- | utils/imxtools/scsitools/stmp_scsi.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/utils/imxtools/scsitools/stmp_scsi.c b/utils/imxtools/scsitools/stmp_scsi.c index e1d0dc4c77..8daeb8a532 100644 --- a/utils/imxtools/scsitools/stmp_scsi.c +++ b/utils/imxtools/scsitools/stmp_scsi.c | |||
@@ -245,14 +245,22 @@ int stmp_get_logical_media_table(stmp_device_t dev, struct stmp_logical_media_ta | |||
245 | int len = sizeof(header); | 245 | int len = sizeof(header); |
246 | int ret = stmp_scsi_get_logical_table(dev, 0, &header, &len); | 246 | int ret = stmp_scsi_get_logical_table(dev, 0, &header, &len); |
247 | if(ret || len != sizeof(header)) | 247 | if(ret || len != sizeof(header)) |
248 | { | ||
249 | stmp_debugf(dev, "Device returned the wrong size for logical media header: " | ||
250 | "%d bytes but expected %d\n", len, sizeof(header)); | ||
248 | return -1; | 251 | return -1; |
252 | } | ||
249 | header.count = stmp_fix_endian16be(header.count); | 253 | header.count = stmp_fix_endian16be(header.count); |
250 | int sz = sizeof(header) + header.count * sizeof(struct scsi_stmp_logical_table_entry_t); | 254 | int sz = sizeof(header) + header.count * sizeof(struct scsi_stmp_logical_table_entry_t); |
251 | len = sz; | 255 | len = sz; |
252 | *table = malloc(sz); | 256 | *table = malloc(sz); |
253 | ret = stmp_scsi_get_logical_table(dev, header.count, &(*table)->header, &len); | 257 | ret = stmp_scsi_get_logical_table(dev, header.count, &(*table)->header, &len); |
254 | if(ret || len != sz) | 258 | if(ret || len != sz) |
259 | { | ||
260 | stmp_debugf(dev, "Device returned the wrong size for logical media table: " | ||
261 | "%d bytes but expected %d (%d entries)\n", len, sz, header.count); | ||
255 | return -1; | 262 | return -1; |
263 | } | ||
256 | (*table)->header.count = stmp_fix_endian16be((*table)->header.count); | 264 | (*table)->header.count = stmp_fix_endian16be((*table)->header.count); |
257 | for(unsigned i = 0; i < (*table)->header.count; i++) | 265 | for(unsigned i = 0; i < (*table)->header.count; i++) |
258 | (*table)->entry[i].size = stmp_fix_endian64be((*table)->entry[i].size); | 266 | (*table)->entry[i].size = stmp_fix_endian64be((*table)->entry[i].size); |