Hi Ola,

El jue, 09-03-2006 a las 18:31 +0100, Ola Lundqvist escribió:
> Hi
> 
> On Thu, Mar 09, 2006 at 09:51:30AM -0300, Javier Kohen wrote:
> ...CUT...
> > > only support their "corporate version" that have much better 
> > > authentication
> > > and other features. VNC is open source software without support from 
> > > upstream.
> > 
> > I see... I didn't know that about upstream.
> > 
> > Well, if you don't have time, let me know and I'll fix this.
> 
> I may have time, but if you are able to help with this I would be greatful.

Here is the patch. The bug was caused by the lack of an explicit (int)
constructor in class PlainPasswd. The compiler would then create an
instance of ObfuscatedPasswd(int) to satisfy the PlainPasswd(const
ObfuscatedPasswd&) constructor, which would cause the buffer to be
deleted on destruction of the "phantom" obfuscated instance.

The fix is trivial. Could you forward it upstream?

Thanks,
-- 
Javier Kohen <[EMAIL PROTECTED]>
ICQ: blashyrkh #2361802
Jabber: [EMAIL PROTECTED]
--- common/rfb/Password.cxx~	2005-03-11 12:08:41.000000000 -0300
+++ common/rfb/Password.cxx	2006-03-09 16:09:13.000000000 -0300
@@ -35,6 +35,9 @@
 
 PlainPasswd::PlainPasswd() {}
 
+PlainPasswd::PlainPasswd(int len) : CharArray(len) {
+}
+
 PlainPasswd::PlainPasswd(char* pwd) : CharArray(pwd) {
 }
 
--- common/rfb/Password.h~	2005-03-11 12:08:41.000000000 -0300
+++ common/rfb/Password.h	2006-03-09 16:08:55.000000000 -0300
@@ -27,6 +27,7 @@
   class PlainPasswd : public CharArray {
   public:
     PlainPasswd();
+    PlainPasswd(int l);
     PlainPasswd(char* pwd);
     PlainPasswd(const ObfuscatedPasswd& obfPwd);
     ~PlainPasswd();

Attachment: signature.asc
Description: Esta parte del mensaje está firmada digitalmente

Reply via email to