]> source.dussan.org Git - tigervnc.git/commitdiff
Hide base SConnection methods from VNCServerST
authorPierre Ossman <ossman@cendio.se>
Fri, 21 Aug 2020 13:53:59 +0000 (15:53 +0200)
committerPierre Ossman <ossman@cendio.se>
Fri, 21 Aug 2020 13:53:59 +0000 (15:53 +0200)
It should be using the safe wrappers for everything so make sure it
cannot bypass those and call the SConnection methods directly.

common/rfb/VNCSConnectionST.h
common/rfb/VNCServerST.cxx

index c8f4c24f07a52508b60158b48ca58acabd1ffed4..617e3c3977ac019e60bac9c34a6336c883042be2 100644 (file)
@@ -37,7 +37,7 @@
 namespace rfb {
   class VNCServerST;
 
-  class VNCSConnectionST : public SConnection,
+  class VNCSConnectionST : private SConnection,
                            public Timer::Callback {
   public:
     VNCSConnectionST(VNCServerST* server_, network::Socket* s, bool reverse);
@@ -48,6 +48,8 @@ namespace rfb {
     virtual bool accessCheck(AccessRights ar) const;
     virtual void close(const char* reason);
 
+    using SConnection::authenticated;
+
     // Methods called from VNCServerST.  None of these methods ever knowingly
     // throw an exception.
 
index f09715a41d82ae7a526eafd28c352be7c1a4619d..17e963e81c7d3b840927bbee1eb81e4b2c2f7df4 100644 (file)
@@ -599,7 +599,7 @@ SConnection* VNCServerST::getConnection(network::Socket* sock) {
   std::list<VNCSConnectionST*>::iterator ci;
   for (ci = clients.begin(); ci != clients.end(); ci++) {
     if ((*ci)->getSock() == sock)
-      return *ci;
+      return (SConnection*)*ci;
   }
   return 0;
 }