From 01a052b9c1c6bdc7307a3f8e8d12db262d9b258c Mon Sep 17 00:00:00 2001 From: Artur Paszkiewicz Date: Thu, 2 Nov 2017 16:10:57 +0100 Subject: [PATCH] imsm: fix reading scsi serial Git-commit: 01a052b9c1c6bdc7307a3f8e8d12db262d9b258c Patch-mainline: mdadm-4.0+ References: bsc#1069165, bsc#1069167, bsc#1068030 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 Signed-off-by: Coly Li --- sg_io.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/sg_io.c b/sg_io.c index 42c91e1..7889a95 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) -- 2.13.6