From 4069e5112e944bb83fad483c26837f0e87c0cb35 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andrius=20=C5=A0tikonas?= Date: Thu, 11 Jan 2018 11:39:15 +0100 Subject: [PATCH] Post merge fixes. In kauth branch ExternalCommand::write should be called before start. --- src/fs/luks.cpp | 2 +- src/fs/luks2.cpp | 11 +++++------ src/fs/udf.cpp | 5 ++--- 3 files changed, 8 insertions(+), 10 deletions(-) diff --git a/src/fs/luks.cpp b/src/fs/luks.cpp index b80bb39..1554523 100644 --- a/src/fs/luks.cpp +++ b/src/fs/luks.cpp @@ -690,7 +690,7 @@ void luks::setPayloadSize() bool luks::testPassphrase(const QString& deviceNode, const QString& passphrase) const { ExternalCommand cmd(QStringLiteral("cryptsetup"), { QStringLiteral("open"), QStringLiteral("--tries"), QStringLiteral("1"), QStringLiteral("--test-passphrase"), deviceNode }); - if (cmd.start(-1) && cmd.write(passphrase.toLocal8Bit() + '\n') == passphrase.toLocal8Bit().length() + 1 && cmd.waitFor() && cmd.exitCode() == 0) + if (cmd.write(passphrase.toLocal8Bit() + '\n') && cmd.start(-1) && cmd.waitFor() && cmd.exitCode() == 0) return true; return false; diff --git a/src/fs/luks2.cpp b/src/fs/luks2.cpp index 72e5554..9453ee1 100644 --- a/src/fs/luks2.cpp +++ b/src/fs/luks2.cpp @@ -56,9 +56,8 @@ bool luks2::create(Report& report, const QString& deviceNode) QStringLiteral("--type"), QStringLiteral("luks2"), QStringLiteral("luksFormat"), deviceNode }); - if (!( createCmd.start(-1) && - createCmd.write(m_passphrase.toLocal8Bit() + '\n') == m_passphrase.toLocal8Bit().length() + 1 && - createCmd.waitFor() && createCmd.exitCode() == 0)) + if (!( createCmd.write(m_passphrase.toLocal8Bit() + '\n') && + createCmd.start(-1) && createCmd.waitFor() && createCmd.exitCode() == 0)) { return false; } @@ -68,7 +67,7 @@ bool luks2::create(Report& report, const QString& deviceNode) deviceNode, suggestedMapperName(deviceNode) }); - if (!( openCmd.start(-1) && openCmd.write(m_passphrase.toLocal8Bit() + '\n') == m_passphrase.toLocal8Bit().length() + 1 && openCmd.waitFor())) + if (!( openCmd.write(m_passphrase.toLocal8Bit() + '\n') && openCmd.start(-1) && openCmd.waitFor())) return false; setPayloadSize(); @@ -95,12 +94,12 @@ bool luks2::resize(Report& report, const QString& deviceNode, qint64 newLength) ExternalCommand cryptResizeCmd(report, QStringLiteral("cryptsetup"), { QStringLiteral("resize"), mapperName() }); report.line() << xi18nc("@info:progress", "Resizing LUKS crypt on partition %1.", deviceNode); - cryptResizeCmd.start(-1); if (m_KeyLocation == keyring) { if (m_passphrase.isEmpty()) return false; cryptResizeCmd.write(m_passphrase.toLocal8Bit() + '\n'); } + cryptResizeCmd.start(-1); cryptResizeCmd.waitFor(); if ( cryptResizeCmd.exitCode() == 0 ) return m_innerFs->resize(report, mapperName(), m_PayloadSize); @@ -111,12 +110,12 @@ bool luks2::resize(Report& report, const QString& deviceNode, qint64 newLength) { QStringLiteral("--size"), QString::number(m_PayloadSize / 512), // FIXME, LUKS2 can have different sector sizes QStringLiteral("resize"), mapperName() }); report.line() << xi18nc("@info:progress", "Resizing LUKS crypt on partition %1.", deviceNode); - cryptResizeCmd.start(-1); if (m_KeyLocation == keyring) { if (m_passphrase.isEmpty()) return false; cryptResizeCmd.write(m_passphrase.toLocal8Bit() + '\n'); } + cryptResizeCmd.start(-1); cryptResizeCmd.waitFor(); if ( cryptResizeCmd.exitCode() == 0 ) return true; diff --git a/src/fs/udf.cpp b/src/fs/udf.cpp index 1b0900f..f34c5f3 100644 --- a/src/fs/udf.cpp +++ b/src/fs/udf.cpp @@ -52,9 +52,8 @@ void udf::init() if (m_Create == cmdSupportFileSystem) { // Detect old mkudffs prior to version 1.1 by lack of --label option -// ExternalCommand cmd(QStringLiteral("mkudffs"), { QStringLiteral("--help") }); -// oldMkudffsVersion = cmd.run(-1) && !cmd.output().contains(QStringLiteral("--label")); - oldMkudffsVersion = false; + ExternalCommand cmd(QStringLiteral("mkudffs"), { QStringLiteral("--help") }); + oldMkudffsVersion = cmd.run(-1) && !cmd.output().contains(QStringLiteral("--label")); } }