summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Alexander <wired@gentoo.org>2010-06-14 17:03:57 +0000
committerAlex Alexander <wired@gentoo.org>2010-06-14 17:03:57 +0000
commit145041dee4f1dd991dd8d06c6cc2a3a00c225a5d (patch)
tree3ed8457012dc058ab2770109728d2a81c17236a1 /net-irc/znc/files
parentsync with php-overlay (diff)
downloadgentoo-2-145041dee4f1dd991dd8d06c6cc2a3a00c225a5d.tar.gz
gentoo-2-145041dee4f1dd991dd8d06c6cc2a3a00c225a5d.tar.bz2
gentoo-2-145041dee4f1dd991dd8d06c6cc2a3a00c225a5d.zip
znc: EAPI 2, fixed security bug #323965
(Portage version: 2.2_rc67/cvs/Linux x86_64)
Diffstat (limited to 'net-irc/znc/files')
-rw-r--r--net-irc/znc/files/znc-0.090-null-pointer-dereference-fix.patch31
1 files changed, 31 insertions, 0 deletions
diff --git a/net-irc/znc/files/znc-0.090-null-pointer-dereference-fix.patch b/net-irc/znc/files/znc-0.090-null-pointer-dereference-fix.patch
new file mode 100644
index 000000000000..c41e1fe9ed7b
--- /dev/null
+++ b/net-irc/znc/files/znc-0.090-null-pointer-dereference-fix.patch
@@ -0,0 +1,31 @@
+--- trunk/znc.cpp 2010/06/13 07:58:28 2025
++++ trunk/znc.cpp 2010/06/13 17:14:52 2026
+@@ -1927,18 +1927,18 @@
+ }
+
+ for (CSockManager::const_iterator it = m_Manager.begin(); it != m_Manager.end(); ++it) {
++ CUser *pUser = NULL;
+ if ((*it)->GetSockName().Left(5) == "IRC::") {
+- CIRCSock *p = (CIRCSock *) *it;
+- ret[p->GetUser()->GetUserName()].first += p->GetBytesRead();
+- ret[p->GetUser()->GetUserName()].second += p->GetBytesWritten();
+- uiUsers_in += p->GetBytesRead();
+- uiUsers_out += p->GetBytesWritten();
++ pUser = ((CIRCSock *) *it)->GetUser();
+ } else if ((*it)->GetSockName().Left(5) == "USR::") {
+- CClient *p = (CClient *) *it;
+- ret[p->GetUser()->GetUserName()].first += p->GetBytesRead();
+- ret[p->GetUser()->GetUserName()].second += p->GetBytesWritten();
+- uiUsers_in += p->GetBytesRead();
+- uiUsers_out += p->GetBytesWritten();
++ pUser = ((CClient*) *it)->GetUser();
++ }
++
++ if (pUser) {
++ ret[pUser->GetUserName()].first += (*it)->GetBytesRead();
++ ret[pUser->GetUserName()].second += (*it)->GetBytesWritten();
++ uiUsers_in += (*it)->GetBytesRead();
++ uiUsers_out += (*it)->GetBytesWritten();
+ } else {
+ uiZNC_in += (*it)->GetBytesRead();
+ uiZNC_out += (*it)->GetBytesWritten();