e2e1d5f
diff -up arora-0.11.0/src/network/networkaccessmanager.cpp.fake-certificate-issuer arora-0.11.0/src/network/networkaccessmanager.cpp
e2e1d5f
--- arora-0.11.0/src/network/networkaccessmanager.cpp.fake-certificate-issuer	2010-09-27 04:42:17.000000000 +0200
e2e1d5f
+++ arora-0.11.0/src/network/networkaccessmanager.cpp	2011-10-20 16:22:39.119469071 +0200
e2e1d5f
@@ -249,12 +249,35 @@ void NetworkAccessManager::proxyAuthenti
e2e1d5f
     }
e2e1d5f
 }
e2e1d5f
 
e2e1d5f
+// TODO (QT5): use QString::htmlEscape or whatever https://qt.gitorious.org/qt/qtbase/merge_requests/56
e2e1d5f
+// ends up with.
e2e1d5f
+// original author: David Faure
e2e1d5f
+static QString htmlEscape(const QString &plain)
e2e1d5f
+{
e2e1d5f
+    QString rich;
e2e1d5f
+    rich.reserve(int(plain.length() * 1.1));
e2e1d5f
+        for (int i = 0; i < plain.length(); ++i) {
e2e1d5f
+        if (plain.at(i) == QLatin1Char('<'))
e2e1d5f
+            rich += QLatin1String("<");
e2e1d5f
+        else if (plain.at(i) == QLatin1Char('>'))
e2e1d5f
+            rich += QLatin1String(">");
e2e1d5f
+        else if (plain.at(i) == QLatin1Char('&'))
e2e1d5f
+            rich += QLatin1String("&");
e2e1d5f
+        else if (plain.at(i) == QLatin1Char('"'))
e2e1d5f
+            rich += QLatin1String(""");
e2e1d5f
+        else
e2e1d5f
+            rich += plain.at(i);
e2e1d5f
+    }
e2e1d5f
+    rich.squeeze();
e2e1d5f
+    return rich;
e2e1d5f
+}
e2e1d5f
+
e2e1d5f
 #ifndef QT_NO_OPENSSL
e2e1d5f
 QString NetworkAccessManager::certToFormattedString(QSslCertificate cert)
e2e1d5f
 {
e2e1d5f
     QStringList message;
e2e1d5f
     message << cert.subjectInfo(QSslCertificate::CommonName);
e2e1d5f
-    message << tr("Issuer: %1").arg(cert.issuerInfo(QSslCertificate::CommonName));
e2e1d5f
+    message << tr("Issuer: %1").arg(htmlEscape(cert.issuerInfo(QSslCertificate::CommonName)));
e2e1d5f
     message << tr("Not valid before: %1").arg(cert.effectiveDate().toString());
e2e1d5f
     message << tr("Valid until: %1").arg(cert.expiryDate().toString());
e2e1d5f