From c90d3b201690d5bb33b7dc842fcfaeb0fc122451 Mon Sep 17 00:00:00 2001 From: bill-auger Date: Sun, 30 Jun 2019 05:58:35 -0400 Subject: [PATCH] squashme WIP upload log to paste server - more error checks and validations --- src/libcalamaresui/ViewManager.cpp | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/src/libcalamaresui/ViewManager.cpp b/src/libcalamaresui/ViewManager.cpp index 0efc7080d..b0f2b00a8 100644 --- a/src/libcalamaresui/ViewManager.cpp +++ b/src/libcalamaresui/ViewManager.cpp @@ -35,7 +35,9 @@ #include #include #include +#include #include +#include namespace Calamares { @@ -288,12 +290,21 @@ quint16 fichePort = 9999; // TODO: config var cDebug() << "Reading response from paste server"; - char resp[1024]; - socket->readLine(resp, 1024); + char resp[1024]; resp[0] = '\0'; + qint64 nBytesRead = socket->readLine(resp, 1024); socket->close(); - QString pasteUrl = QString( resp ) ; - QString pasteUrlMsg = QString( pasteUrlFmt ).arg( pasteUrl ); + QUrl pasteUrl = QUrl( QString( resp ).trimmed(), QUrl::StrictMode ); + QString pasteUrlStr = pasteUrl.toString() ; + QRegularExpression pasteUrlRegex( "^http[s]?://" + ficheHost ); + QString pasteUrlMsg = QString( pasteUrlFmt ).arg( pasteUrlStr ); + + if ( nBytesRead < 8 || !pasteUrl.isValid() || + !pasteUrlRegex.match( pasteUrlStr ).hasMatch() ) + { + cError() << "No data from paste server"; + return; + } cDebug() << pasteUrlMsg;