diff options
author | Dan Williams <dan.j.williams@intel.com> | 2009-01-20 01:33:56 -0700 |
---|---|---|
committer | Dan Williams <dan.j.williams@intel.com> | 2009-01-20 01:33:56 -0700 |
commit | 03cd4cc810fdaea1613fa6a792564aa96451f447 (patch) | |
tree | bd630dfeba07bd69e8dcdcd6fb7152188abc8ea3 /super-intel.c | |
parent | be2c0e387b88c801a5b5f07d7f447a4dba97100e (diff) | |
download | mdadm-03cd4cc810fdaea1613fa6a792564aa96451f447.tar.gz mdadm-03cd4cc810fdaea1613fa6a792564aa96451f447.tar.xz mdadm-03cd4cc810fdaea1613fa6a792564aa96451f447.zip |
imsm: imsm_read_serial check for zero-length response
VMWare virtual disks successfully run the inquiry but return a zero response.
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Diffstat (limited to 'super-intel.c')
-rw-r--r-- | super-intel.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/super-intel.c b/super-intel.c index 4eaca9d..ce9a5c1 100644 --- a/super-intel.c +++ b/super-intel.c @@ -1415,6 +1415,13 @@ static int imsm_read_serial(int fd, char *devname, /* trim leading whitespace */ rsp_len = scsi_serial[3]; + if (!rsp_len) { + if (devname) + fprintf(stderr, + Name ": Failed to retrieve serial for %s\n", + devname); + return 2; + } rsp_buf = (char *) &scsi_serial[4]; c = rsp_buf; while (isspace(*c)) |