mirror of
git://sourceware.org/git/lvm2.git
synced 2025-01-02 01:18:26 +03:00
device_id: handle wwid with spaces or control characters
non-standard wwid can be reported from sysfs with spaces/etc.
replace with "_"
(cherry picked from commit ae54e75176
)
This commit is contained in:
parent
9bd979855b
commit
c265ff79d3
@ -302,6 +302,7 @@ const char *device_id_system_read(struct cmd_context *cmd, struct device *dev, u
|
|||||||
{
|
{
|
||||||
char sysbuf[PATH_MAX] = { 0 };
|
char sysbuf[PATH_MAX] = { 0 };
|
||||||
const char *idname = NULL;
|
const char *idname = NULL;
|
||||||
|
int i;
|
||||||
|
|
||||||
if (idtype == DEV_ID_TYPE_SYS_WWID) {
|
if (idtype == DEV_ID_TYPE_SYS_WWID) {
|
||||||
read_sys_block(cmd, dev, "device/wwid", sysbuf, sizeof(sysbuf));
|
read_sys_block(cmd, dev, "device/wwid", sysbuf, sizeof(sysbuf));
|
||||||
@ -309,13 +310,10 @@ const char *device_id_system_read(struct cmd_context *cmd, struct device *dev, u
|
|||||||
if (!sysbuf[0])
|
if (!sysbuf[0])
|
||||||
read_sys_block(cmd, dev, "wwid", sysbuf, sizeof(sysbuf));
|
read_sys_block(cmd, dev, "wwid", sysbuf, sizeof(sysbuf));
|
||||||
|
|
||||||
/* scsi_debug wwid begins "t10.Linux scsi_debug ..." */
|
|
||||||
if (strstr(sysbuf, "scsi_debug"))
|
|
||||||
sysbuf[0] = '\0';
|
|
||||||
|
|
||||||
/* qemu wwid begins "t10.ATA QEMU HARDDISK ..." */
|
/* qemu wwid begins "t10.ATA QEMU HARDDISK ..." */
|
||||||
if (strstr(sysbuf, "QEMU HARDDISK"))
|
if (strstr(sysbuf, "QEMU HARDDISK"))
|
||||||
sysbuf[0] = '\0';
|
sysbuf[0] = '\0';
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
else if (idtype == DEV_ID_TYPE_SYS_SERIAL)
|
else if (idtype == DEV_ID_TYPE_SYS_SERIAL)
|
||||||
@ -353,6 +351,11 @@ const char *device_id_system_read(struct cmd_context *cmd, struct device *dev, u
|
|||||||
return idname;
|
return idname;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for (i = 0; i < strlen(sysbuf); i++) {
|
||||||
|
if (isblank(sysbuf[i]) || isspace(sysbuf[i]) || iscntrl(sysbuf[i]))
|
||||||
|
sysbuf[i] = '_';
|
||||||
|
}
|
||||||
|
|
||||||
if (!sysbuf[0])
|
if (!sysbuf[0])
|
||||||
goto_bad;
|
goto_bad;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user