shared/dissect-image: make sure that we don't truncate device name

gcc-9 complains that the string may be truncated when written into the output
structure. This shouldn't happen, but if it did, in principle we could remove a
different structure (with a matching name prefix). Let's just refuse the
operation if the name doesn't fit.
This commit is contained in:
Zbigniew Jędrzejewski-Szmek
2019-01-27 09:35:36 +01:00
parent 064605ef56
commit cd8c98d7a7
+3 -1
View File
@@ -1178,7 +1178,6 @@ int dissected_image_decrypt_interactively(
#if HAVE_LIBCRYPTSETUP
static int deferred_remove(DecryptedPartition *p) {
struct dm_ioctl dm = {
.version = {
DM_VERSION_MAJOR,
@@ -1199,6 +1198,9 @@ static int deferred_remove(DecryptedPartition *p) {
if (fd < 0)
return -errno;
if (strlen(p->name) > sizeof(dm.name))
return -ENAMETOOLONG;
strncpy(dm.name, p->name, sizeof(dm.name));
if (ioctl(fd, DM_DEV_REMOVE, &dm))