summaryrefslogtreecommitdiff
path: root/0003-libvncserver-auth-don-t-keep-security-handlers-from-.patch
blob: 2f736d0cfa0281a6526ce7221e8d90356a9b4745 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
From 2a77dd86a97fa5f4735f678599cea839ba09009c Mon Sep 17 00:00:00 2001
From: Christian Beier <info@christianbeier.net>
Date: Sun, 9 Aug 2020 20:11:26 +0200
Subject: [PATCH 3/4] libvncserver/auth: don't keep security handlers from
 previous runs

Whyohsoever security handlers are stored in a variable global to the
application, not in the rfbScreen struct. This meant that security
handlers registered once would stick around forever before this commit.
---
 libvncserver/auth.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/libvncserver/auth.c b/libvncserver/auth.c
index 55e0b3c9..fc74c800 100644
--- a/libvncserver/auth.c
+++ b/libvncserver/auth.c
@@ -264,9 +264,11 @@ rfbSendSecurityTypeList(rfbClientPtr cl,
     primaryType = determinePrimarySecurityType(cl);
     switch (primaryType) {
     case rfbSecTypeNone:
+	rfbUnregisterSecurityHandler(&VncSecurityHandlerVncAuth);
         rfbRegisterSecurityHandler(&VncSecurityHandlerNone);
         break;
     case rfbSecTypeVncAuth:
+	rfbUnregisterSecurityHandler(&VncSecurityHandlerNone);
         rfbRegisterSecurityHandler(&VncSecurityHandlerVncAuth);
         break;
     }
-- 
2.28.0