From: Artur Paszkiewicz Date: Thu, 2 Nov 2017 15:10:57 +0000 (+0100) Subject: imsm: fix reading scsi serial X-Git-Tag: mdadm-4.1-rc1~50 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=01a052b9c1c6bdc7307a3f8e8d12db262d9b258c;p=thirdparty%2Fmdadm.git imsm: fix reading scsi serial Improve error detection after SG_IO ioctl. Checking only the return value and response length is insufficient and leads to anomalies if a drive does not have a serial number. Reported-by: NeilBrown Tested-by: NeilBrown Signed-off-by: Artur Paszkiewicz Signed-off-by: Jes Sorensen --- diff --git a/sg_io.c b/sg_io.c index 42c91e1e..7889a95e 100644 --- a/sg_io.c +++ b/sg_io.c @@ -46,6 +46,9 @@ int scsi_get_serial(int fd, void *buf, size_t buf_len) if (rv) return rv; + if ((io_hdr.info & SG_INFO_OK_MASK) != SG_INFO_OK) + return -1; + rsp_len = rsp_buf[3]; if (!rsp_len || buf_len < rsp_len)