diff --git a/lib/iscsi-command.c b/lib/iscsi-command.c index ba4bc44..a45b8dd 100644 --- a/lib/iscsi-command.c +++ b/lib/iscsi-command.c @@ -326,12 +326,14 @@ static void parse_sense_descriptors(struct scsi_sense *sense, const uint8_t *sb, const unsigned char *p, *const end = sb + sb_len; for (p = sb; p < end; p += p[1]) { - if (p[1] < 4) /* length */ + uint8_t addl_len = p[1]; + if (addl_len < 4) break; switch (p[0]) { case 2: /* Sense key specific sense data descriptor */ - parse_sense_spec(sense, p + 4); + if (addl_len == 0x06) + parse_sense_spec(sense, p + 4); break; } }