From b10577e1c7ba0c856c96c96a80187b977f88ef34 Mon Sep 17 00:00:00 2001 From: Christian Morlok Date: Wed, 5 Apr 2017 15:14:46 +0200 Subject: [PATCH] Fix creation of encrypted volumes We can't rely on the order of lsblk. Check for the type=crypt instead. BUG: 379205 --- src/fs/luks.cpp | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/fs/luks.cpp b/src/fs/luks.cpp index febc2e0..6a4b268 100644 --- a/src/fs/luks.cpp +++ b/src/fs/luks.cpp @@ -562,13 +562,12 @@ void luks::getMapperName(const QString& deviceNode) { QStringLiteral("--list"), QStringLiteral("--noheadings"), QStringLiteral("--output"), - QStringLiteral("name"), + QStringLiteral("type,name"), deviceNode }); if (cmd.run(-1) && cmd.exitCode() == 0) { - QStringList output=cmd.output().split(QStringLiteral("\n")); - output.removeFirst(); - if (!output.first().isEmpty()) - m_MapperName = QStringLiteral("/dev/mapper/") + output.first(); + QStringList output=cmd.output().split(QStringLiteral("\n")).filter(QRegularExpression(QStringLiteral("^crypt "))); + if (!output.isEmpty() && !output.first().isEmpty()) + m_MapperName = QStringLiteral("/dev/mapper/") + output.first().split(QStringLiteral(" ")).last(); } else m_MapperName = QString();