From aa5453110744ab4cf549578781f9e4b2e99b900b Mon Sep 17 00:00:00 2001 From: steven_carr Date: Mon, 29 May 2006 00:56:40 +0000 Subject: Security Type memory leak plugged. Leaks when rfb >= 3.7 clients connects. The security list would grow 1 entry when clients connect. --- libvncserver/auth.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) (limited to 'libvncserver') diff --git a/libvncserver/auth.c b/libvncserver/auth.c index 0994c53..2a8fcb4 100755 --- a/libvncserver/auth.c +++ b/libvncserver/auth.c @@ -129,6 +129,13 @@ rfbVncAuthSendChallenge(rfbClientPtr cl) * Different security types will be added by applications using this library. */ +static rfbSecurityHandler primaryVncSecurityHandler = { + 1, + rfbVncAuthSendChallenge, + NULL +}; + + static void rfbSendSecurityTypeList(rfbClientPtr cl, int primaryType) { @@ -141,11 +148,8 @@ rfbSendSecurityTypeList(rfbClientPtr cl, int primaryType) /* Fill in the list of security types in the client structure. */ if (primaryType != rfbSecTypeInvalid) { - rfbSecurityHandler* handler = calloc(sizeof(rfbSecurityHandler),1); - handler->type = primaryType; - handler->handler = rfbVncAuthSendChallenge; - handler->next = NULL; - rfbRegisterSecurityHandler(handler); + primaryVncSecurityHandler.type = primaryType; + rfbRegisterSecurityHandler(&primaryVncSecurityHandler); } for (handler = securityHandlers; -- cgit v1.2.3