devt2devname was not actually setting devname, so multipath was not able to
do operate on devices using major:minor
This patch sets devname, and also checks for an unlikely buffer overrun.
Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
continue;
if ((major == tmpmaj) && (minor == tmpmin)) {
- sprintf(block_path, "/sys/block/%s", dev);
+ if (snprintf(block_path, FILE_NAME_SIZE, "/sys/block/%s", dev) >= FILE_NAME_SIZE) {
+ condlog(0, "device name %s is too long\n", dev);
+ fclose(fd);
+ return 1;
+ }
break;
}
}
condlog(0, "sysfs entry %s is not a directory\n", block_path);
return 1;
}
+ basename(block_path, devname);
return 0;
}