-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Hello, I want to fix #536489 [i|+| ] [znc] znc: Possible crash if a user is connecting to a server and will be deleted at the same time debdiff attached: debian/patches/03-crash-deleted-user.dpatch | 21 +++++++++++++++++++++ znc-0.058/debian/changelog | 13 +++++++++++++ znc-0.058/debian/control | 2 +- znc-0.058/debian/patches/00list | 1 + In debian/control I just changed my email address, because the old one isn't used anymore and I do not get those mails. Please CC me, I am not subscribed or just ping me on IRC (the-me) if I am allowed to upload or not. Thanks. - -- /* Mit freundlichem Gruß / With kind regards, Patrick Matthäi GNU/Linux Debian Developer E-Mail: pmatthaei@debian.org patrick@linux-dev.org Comment: Always if we think we are right, we were maybe wrong. */ -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.9 (GNU/Linux) iEYEARECAAYFAkpXPIsACgkQ2XA5inpabMfaHACfVa+LR4PMb3tmTLOwyryFr7Dt IAQAn2QOASj/W9I4E8LvBs9fu9P42WuA =jX8e -----END PGP SIGNATURE-----
diff -u znc-0.058/debian/changelog znc-0.058/debian/changelog --- znc-0.058/debian/changelog +++ znc-0.058/debian/changelog @@ -1,3 +1,16 @@ +znc (0.058-2+lenny2) stable; urgency=low + + * Add 03-crash-deleted-user.dpatch, which fixes a possible crash if users are + deleted. + If a user is deleted while it is trying to connect to an IRC server, the + IRC socket wasn't deleted together with the user. At some later point in + time, the IRC socket will try to use the user object, which was already + freed by now. + Closes: #536489 + * Change my email address. + + -- Patrick Matthäi <pmatthaei@debian.org> Fri, 10 Jul 2009 12:20:16 +0200 + znc (0.058-2+lenny1) stable-security; urgency=low * Add 02-webmin-priv-escalation.dpatch which properly handle newlines in diff -u znc-0.058/debian/control znc-0.058/debian/control --- znc-0.058/debian/control +++ znc-0.058/debian/control @@ -3,7 +3,7 @@ Priority: optional DM-Upload-Allowed: yes Build-Depends: debhelper (>= 5), dpatch, libssl-dev, libperl-dev -Maintainer: Patrick Matthäi <patrick.matthaei@web.de> +Maintainer: Patrick Matthäi <pmatthaei@debian.org> Standards-Version: 3.8.0 Homepage: http://znc.sourceforge.net/ diff -u znc-0.058/debian/patches/00list znc-0.058/debian/patches/00list --- znc-0.058/debian/patches/00list +++ znc-0.058/debian/patches/00list @@ -2,0 +3 @@ +03-crash-deleted-user.dpatch only in patch2: unchanged: --- znc-0.058.orig/debian/patches/03-crash-deleted-user.dpatch +++ znc-0.058/debian/patches/03-crash-deleted-user.dpatch @@ -0,0 +1,21 @@ +#!/bin/sh /usr/share/dpatch/dpatch-run +## 03-crash-deleted-user.dpatch by Uli Schlachter +## +## DP: Fix a possible crash if users are deleted. + +@DPATCH@ + +diff -Naur znc-0.058.orig/znc.cpp znc-0.058/znc.cpp +--- znc-0.058.orig/znc.cpp 2009-07-10 12:23:44.000000000 +0200 ++++ znc-0.058/znc.cpp 2009-07-10 12:27:16.000000000 +0200 +@@ -187,7 +187,9 @@ + #endif + m_msUsers.erase(pUser->GetUserName()); + +- CIRCSock* pIRCSock = pUser->GetIRCSock(); ++ // Don't use pUser->GetIRCSock(), as that only returns something if the ++ // CIRCSock is already connected, not when it's still connecting! ++ CIRCSock* pIRCSock = (CIRCSock*) m_Manager.FindSockByName("IRC::" + pUser->GetUserName()); + + if (pIRCSock) { + m_Manager.DelSockByAddr(pIRCSock);
Attachment:
deb.diff.sig
Description: Binary data