]> source.dussan.org Git - tigervnc.git/commitdiff
Avoid connection failed exception
authorPierre Ossman <ossman@cendio.se>
Tue, 13 Aug 2024 13:31:05 +0000 (15:31 +0200)
committerPierre Ossman <ossman@cendio.se>
Tue, 13 Aug 2024 13:31:05 +0000 (15:31 +0200)
The usage of this is unclear as it is never caught. Use the general
exception class, to stay consistent with all other protocol handling.

common/rfb/CSecurityDH.cxx
common/rfb/CSecurityMSLogonII.cxx
common/rfb/CSecurityRSAAES.cxx
common/rfb/SSecurityRSAAES.cxx

index 257977921fe7d1a2377257824f8d5b0e4aec8be5..f3b085c720189d6dcebdd61f0dce3555f058595d 100644 (file)
@@ -112,7 +112,7 @@ void CSecurityDH::writeCredentials()
 
   std::vector<uint8_t> bBytes(keyLength);
   if (!rs.hasData(keyLength))
-    throw ConnFailedException("failed to generate DH private key");
+    throw Exception("failed to generate DH private key");
   rs.readBytes(bBytes.data(), bBytes.size());
   nettle_mpz_set_str_256_u(b, bBytes.size(), bBytes.data());
   mpz_powm(k, A, b, p);
@@ -132,7 +132,7 @@ void CSecurityDH::writeCredentials()
 
   uint8_t buf[128];
   if (!rs.hasData(128))
-    throw ConnFailedException("failed to generate random padding");
+    throw Exception("failed to generate random padding");
   rs.readBytes(buf, 128);
   if (username.size() >= 64)
     throw Exception("username is too long");
index 24bd4cbd50241f043c86a471212cab61bc54d93e..dc81751858ea40b7c2def90ada013bec281c46b6 100644 (file)
@@ -101,7 +101,7 @@ void CSecurityMSLogonII::writeCredentials()
 
   std::vector<uint8_t> bBytes(8);
   if (!rs.hasData(8))
-    throw ConnFailedException("failed to generate DH private key");
+    throw Exception("failed to generate DH private key");
   rs.readBytes(bBytes.data(), bBytes.size());
   nettle_mpz_set_str_256_u(b, bBytes.size(), bBytes.data());
   mpz_powm(k, A, b, p);
@@ -123,7 +123,7 @@ void CSecurityMSLogonII::writeCredentials()
   }
 
   if (!rs.hasData(256 + 64))
-    throw ConnFailedException("failed to generate random padding");
+    throw Exception("failed to generate random padding");
   rs.readBytes(user, 256);
   rs.readBytes(pass, 64);
   if (username.size() >= 256)
index 9b418c648def8fe3dc1109ee3f358a61dcf9bd06..a78739acad788897faec042494097e129a8e149d 100644 (file)
@@ -135,7 +135,7 @@ static void random_func(void* ctx, size_t length, uint8_t* dst)
 {
   rdr::RandomStream* rs = (rdr::RandomStream*)ctx;
   if (!rs->hasData(length))
-    throw ConnFailedException("failed to generate random");
+    throw Exception("failed to generate random");
   rs->readBytes(dst, length);
 }
 
@@ -223,7 +223,7 @@ void CSecurityRSAAES::writeRandom()
 {
   rdr::OutStream* os = cc->getOutStream();
   if (!rs.hasData(keySize / 8))
-    throw ConnFailedException("failed to generate random");
+    throw Exception("failed to generate random");
   rs.readBytes(clientRandom, keySize / 8);
   mpz_t x;
   mpz_init(x);
index 530dca16c8d18f21431b4072da0dec99fca7ddf7..37860a10870694a8322f587fa8e265c80d532775 100644 (file)
@@ -155,18 +155,18 @@ void SSecurityRSAAES::loadPrivateKey()
 {
   FILE* file = fopen(keyFile, "rb");
   if (!file)
-    throw ConnFailedException("failed to open key file");
+    throw Exception("failed to open key file");
   fseek(file, 0, SEEK_END);
   size_t size = ftell(file);
   if (size == 0 || size > MaxKeyFileSize) {
     fclose(file);
-    throw ConnFailedException("size of key file is zero or too big");
+    throw Exception("size of key file is zero or too big");
   }
   fseek(file, 0, SEEK_SET);
   std::vector<uint8_t> data(size);
   if (fread(data.data(), 1, data.size(), file) != size) {
     fclose(file);
-    throw ConnFailedException("failed to read key");
+    throw Exception("failed to read key");
   }
   fclose(file);
 
@@ -183,7 +183,7 @@ void SSecurityRSAAES::loadPrivateKey()
     loadPKCS8Key(der.data(), der.size());
     return;
   }
-  throw ConnFailedException("failed to import key");
+  throw Exception("failed to import key");
 }
 
 void SSecurityRSAAES::loadPKCS1Key(const uint8_t* data, size_t size)
@@ -194,7 +194,7 @@ void SSecurityRSAAES::loadPKCS1Key(const uint8_t* data, size_t size)
   if (!rsa_keypair_from_der(&pub, &serverKey, 0, size, data)) {
     rsa_private_key_clear(&serverKey);
     rsa_public_key_clear(&pub);
-    throw ConnFailedException("failed to import key");
+    throw Exception("failed to import key");
   }
   serverKeyLength = serverKey.size * 8;
   serverKeyN = new uint8_t[serverKey.size];
@@ -234,7 +234,7 @@ void SSecurityRSAAES::loadPKCS8Key(const uint8_t* data, size_t size)
   loadPKCS1Key(i.data, i.length);
   return;
 failed:
-  throw ConnFailedException("failed to import key");
+  throw Exception("failed to import key");
 }
 
 bool SSecurityRSAAES::processMsg()