dissect: when dissecting block devices, ignore weird MMC RPMB partitions (#6165)

For now, let's just special-case this in the sources. If more partition
types like this show up we should probably find some other solution.

Fixes: #5806
This commit is contained in:
Lennart Poettering 2017-06-22 17:40:50 +02:00 committed by Martin Pitt
parent 670d494690
commit 7be1420f44
1 changed files with 7 additions and 1 deletions

View File

@ -301,7 +301,7 @@ int dissect_image(int fd, const void *root_hash, size_t root_hash_size, DissectI
_cleanup_udev_device_unref_ struct udev_device *q;
unsigned long long pflags;
blkid_partition pp;
const char *node;
const char *node, *sysname;
dev_t qn;
int nr;
@ -316,6 +316,12 @@ int dissect_image(int fd, const void *root_hash, size_t root_hash_size, DissectI
if (st.st_rdev == qn)
continue;
/* Filter out weird MMC RPMB partitions, which cannot reasonably be read, see
* https://github.com/systemd/systemd/issues/5806 */
sysname = udev_device_get_sysname(q);
if (sysname && startswith(sysname, "mmcblk") && endswith(sysname, "rpmb"))
continue;
node = udev_device_get_devnode(q);
if (!node)
continue;