[arch-commits] Commit in znc/repos (10 files)
Sébastien Luttringer
seblu at nymeria.archlinux.org
Mon May 5 23:39:15 UTC 2014
Date: Tuesday, May 6, 2014 @ 01:39:14
Author: seblu
Revision: 110738
archrelease: copy trunk to community-i686, community-x86_64
Added:
znc/repos/community-i686/01-sec-correctly-handle-channel-names.patch
(from rev 110737, znc/trunk/01-sec-correctly-handle-channel-names.patch)
znc/repos/community-i686/PKGBUILD
(from rev 110737, znc/trunk/PKGBUILD)
znc/repos/community-i686/znc.install
(from rev 110737, znc/trunk/znc.install)
znc/repos/community-x86_64/01-sec-correctly-handle-channel-names.patch
(from rev 110737, znc/trunk/01-sec-correctly-handle-channel-names.patch)
znc/repos/community-x86_64/PKGBUILD
(from rev 110737, znc/trunk/PKGBUILD)
znc/repos/community-x86_64/znc.install
(from rev 110737, znc/trunk/znc.install)
Deleted:
znc/repos/community-i686/PKGBUILD
znc/repos/community-i686/znc.install
znc/repos/community-x86_64/PKGBUILD
znc/repos/community-x86_64/znc.install
--------------------------------------------------------------+
/PKGBUILD | 90 ++++++++++
/znc.install | 58 ++++++
community-i686/01-sec-correctly-handle-channel-names.patch | 72 ++++++++
community-i686/PKGBUILD | 39 ----
community-i686/znc.install | 29 ---
community-x86_64/01-sec-correctly-handle-channel-names.patch | 72 ++++++++
community-x86_64/PKGBUILD | 39 ----
community-x86_64/znc.install | 29 ---
8 files changed, 292 insertions(+), 136 deletions(-)
Copied: znc/repos/community-i686/01-sec-correctly-handle-channel-names.patch (from rev 110737, znc/trunk/01-sec-correctly-handle-channel-names.patch)
===================================================================
--- community-i686/01-sec-correctly-handle-channel-names.patch (rev 0)
+++ community-i686/01-sec-correctly-handle-channel-names.patch 2014-05-05 23:39:14 UTC (rev 110738)
@@ -0,0 +1,72 @@
+From 8756be513ab6663dcd64087006b257ff34e8e487 Mon Sep 17 00:00:00 2001
+From: Uli Schlachter <psychon at znc.in>
+Date: Sun, 13 Apr 2014 20:36:55 +0200
+Subject: [PATCH] webadmin/add channel: Correctly handle channel names
+
+The CChan constructor makes sure that the channel name begins with a valid
+channel prefix. Thus, this could change the name of the resulting channel.
+
+When you edited an irc network which already had a channel "#foo", were
+connected to IRC (so ZNC knows which prefixes are valid) and added a channel
+"foo", this would lead to a problem:
+
+Webadmin checks and sees that there is no channel "foo" yet. Webadmin creates a
+new CChan instance for "foo". The CChan constructor notices that "f" is not a
+valid channel prefix and instead calls itself "#foo". Then,
+CIRCNetwork::AddChan() would see that this channel already exists, delete the
+given channel and return false.
+
+However, webadmin didn't check this result and would continue changing settings
+on an already destroyed CChan instance.
+
+Fix this by checking if the channel exists after CChan had its chance to mess
+with the channel name. Also handle failures from CIRCNetwork::AddChan().
+
+Fixes #528.
+
+Signed-off-by: Uli Schlachter <psychon at znc.in>
+(cherry picked from commit 5e6e3be32acfeadeaf1fb3bb17bada08aec6432f)
+---
+ modules/webadmin.cpp | 16 +++++++++++-----
+ 1 file changed, 11 insertions(+), 5 deletions(-)
+
+diff --git a/modules/webadmin.cpp b/modules/webadmin.cpp
+index ec67508..2a03367 100644
+--- a/modules/webadmin.cpp
++++ b/modules/webadmin.cpp
+@@ -667,13 +667,19 @@ class CWebAdminMod : public CModule {
+ return true;
+ }
+
+- if (pNetwork->FindChan(sChanName.Token(0))) {
+- WebSock.PrintErrorPage("Channel [" + sChanName.Token(0) + "] already exists");
++ // This could change the channel name and e.g. add a "#" prefix
++ pChan = new CChan(sChanName, pNetwork, true);
++
++ if (pNetwork->FindChan(pChan->GetName())) {
++ WebSock.PrintErrorPage("Channel [" + pChan->GetName() + "] already exists");
++ delete pChan;
+ return true;
+ }
+
+- pChan = new CChan(sChanName, pNetwork, true);
+- pNetwork->AddChan(pChan);
++ if (!pNetwork->AddChan(pChan)) {
++ WebSock.PrintErrorPage("Could not add channel [" + pChan->GetName() + "]");
++ return true;
++ }
+ }
+
+ pChan->SetBufferCount(WebSock.GetParam("buffercount").ToUInt(), spSession->IsAdmin());
+@@ -699,7 +705,7 @@ class CWebAdminMod : public CModule {
+
+ CTemplate TmplMod;
+ TmplMod["User"] = pUser->GetUserName();
+- TmplMod["ChanName"] = sChanName;
++ TmplMod["ChanName"] = pChan->GetName();
+ TmplMod["WebadminAction"] = "change";
+ FOR_EACH_MODULE(it, pNetwork) {
+ (*it)->OnEmbeddedWebRequest(WebSock, "webadmin/channel", TmplMod);
+--
+1.9.1
+
Deleted: community-i686/PKGBUILD
===================================================================
--- community-i686/PKGBUILD 2014-05-05 23:38:13 UTC (rev 110737)
+++ community-i686/PKGBUILD 2014-05-05 23:39:14 UTC (rev 110738)
@@ -1,39 +0,0 @@
-# $Id$
-# Maintainer: Sébastien Luttringer
-# Contributor: Kaiting Chen <kaitocracy at gmail.com>
-# Contributor: mickael9 <mickael9 at gmail dot com>
-
-pkgname=znc
-pkgver=1.2
-pkgrel=2
-pkgdesc='An IRC bouncer with modules & scripts support'
-url='http://en.znc.in/wiki/index.php/ZNC'
-license=('GPL2')
-arch=('i686' 'x86_64')
-depends=('libsasl')
-makedepends=('tcl' 'python' 'perl')
-optdepends=('tcl: modtcl module'
- 'python: modpython module'
- 'perl: modperl module'
- 'cyrus-sasl: saslauth module')
-install=$pkgname.install
-source=("http://znc.in/releases/$pkgname-$pkgver.tar.gz")
-md5sums=('ef18e5402a82cc3fcab5c2ac5c2e6f3b')
-
-build() {
- cd $pkgname-$pkgver
- ./configure --prefix=/usr \
- --enable-cyrus \
- --enable-python \
- --enable-perl \
- --enable-tcl \
- --with-systemdsystemunitdir=/usr/lib/systemd/system
- make
-}
-
-package() {
- cd $pkgname-$pkgver
- make DESTDIR="$pkgdir" install
-}
-
-# vim:set ts=2 sw=2 et:
Copied: znc/repos/community-i686/PKGBUILD (from rev 110737, znc/trunk/PKGBUILD)
===================================================================
--- community-i686/PKGBUILD (rev 0)
+++ community-i686/PKGBUILD 2014-05-05 23:39:14 UTC (rev 110738)
@@ -0,0 +1,45 @@
+# $Id$
+# Maintainer: Sébastien Luttringer
+# Contributor: Kaiting Chen <kaitocracy at gmail.com>
+# Contributor: mickael9 <mickael9 at gmail dot com>
+
+pkgname=znc
+pkgver=1.2
+pkgrel=3
+pkgdesc='An IRC bouncer with modules & scripts support'
+url='http://en.znc.in/wiki/index.php/ZNC'
+license=('GPL2')
+arch=('i686' 'x86_64')
+depends=('libsasl')
+makedepends=('tcl' 'python' 'perl')
+optdepends=('tcl: modtcl module'
+ 'python: modpython module'
+ 'perl: modperl module'
+ 'cyrus-sasl: saslauth module')
+install=$pkgname.install
+source=("http://znc.in/releases/$pkgname-$pkgver.tar.gz"
+ '01-sec-correctly-handle-channel-names.patch')
+md5sums=('ef18e5402a82cc3fcab5c2ac5c2e6f3b'
+ 'SKIP')
+
+prepare() {
+ patch -p1 -d $pkgname-$pkgver < 01-sec-correctly-handle-channel-names.patch
+}
+
+build() {
+ cd $pkgname-$pkgver
+ ./configure --prefix=/usr \
+ --enable-cyrus \
+ --enable-python \
+ --enable-perl \
+ --enable-tcl \
+ --with-systemdsystemunitdir=/usr/lib/systemd/system
+ make
+}
+
+package() {
+ cd $pkgname-$pkgver
+ make DESTDIR="$pkgdir" install
+}
+
+# vim:set ts=2 sw=2 et:
Deleted: community-i686/znc.install
===================================================================
--- community-i686/znc.install 2014-05-05 23:38:13 UTC (rev 110737)
+++ community-i686/znc.install 2014-05-05 23:39:14 UTC (rev 110738)
@@ -1,29 +0,0 @@
-#/bin/sh
-
-# arg 1: the new package version
-post_install() {
- getent group znc >/dev/null || groupadd -g 136 znc
- getent passwd znc >/dev/null || useradd -r -d /var/lib/znc -u 136 -g 136 znc
- [ -d /var/lib/znc ] || install -dm 750 -o znc -g znc /var/lib/znc
- echo "==> Use 'znc --makeconf' as user znc to generate your first config"
- true
-}
-
-# arg 1: the new package version
-# arg 2: the old package version
-post_upgrade() {
- if [ "`vercmp $2 1.0-4`" -lt 0 ]; then
- [ -d /var/lib/znc ] || install -dm 750 -o znc -g znc /var/lib/znc
- usermod -d /var/lib/znc znc 2>/dev/null && echo '==> znc home directory has moved to /var/lib/znc'
- fi
- true
-}
-
-# arg 1: the old package version
-post_remove() {
- userdel -f znc >/dev/null 2>&1
- groupdel znc >/dev/null 2>&1
- true
-}
-
-# vim:set ts=2 sw=2 ft=sh et:
Copied: znc/repos/community-i686/znc.install (from rev 110737, znc/trunk/znc.install)
===================================================================
--- community-i686/znc.install (rev 0)
+++ community-i686/znc.install 2014-05-05 23:39:14 UTC (rev 110738)
@@ -0,0 +1,29 @@
+#/bin/sh
+
+# arg 1: the new package version
+post_install() {
+ getent group znc >/dev/null || groupadd -g 136 znc
+ getent passwd znc >/dev/null || useradd -r -d /var/lib/znc -u 136 -g 136 znc
+ [ -d /var/lib/znc ] || install -dm 750 -o znc -g znc /var/lib/znc
+ echo "==> Use 'znc --makeconf' as user znc to generate your first config"
+ true
+}
+
+# arg 1: the new package version
+# arg 2: the old package version
+post_upgrade() {
+ if [ "`vercmp $2 1.0-4`" -lt 0 ]; then
+ [ -d /var/lib/znc ] || install -dm 750 -o znc -g znc /var/lib/znc
+ usermod -d /var/lib/znc znc 2>/dev/null && echo '==> znc home directory has moved to /var/lib/znc'
+ fi
+ true
+}
+
+# arg 1: the old package version
+post_remove() {
+ userdel -f znc >/dev/null 2>&1
+ groupdel znc >/dev/null 2>&1
+ true
+}
+
+# vim:set ts=2 sw=2 ft=sh et:
Copied: znc/repos/community-x86_64/01-sec-correctly-handle-channel-names.patch (from rev 110737, znc/trunk/01-sec-correctly-handle-channel-names.patch)
===================================================================
--- community-x86_64/01-sec-correctly-handle-channel-names.patch (rev 0)
+++ community-x86_64/01-sec-correctly-handle-channel-names.patch 2014-05-05 23:39:14 UTC (rev 110738)
@@ -0,0 +1,72 @@
+From 8756be513ab6663dcd64087006b257ff34e8e487 Mon Sep 17 00:00:00 2001
+From: Uli Schlachter <psychon at znc.in>
+Date: Sun, 13 Apr 2014 20:36:55 +0200
+Subject: [PATCH] webadmin/add channel: Correctly handle channel names
+
+The CChan constructor makes sure that the channel name begins with a valid
+channel prefix. Thus, this could change the name of the resulting channel.
+
+When you edited an irc network which already had a channel "#foo", were
+connected to IRC (so ZNC knows which prefixes are valid) and added a channel
+"foo", this would lead to a problem:
+
+Webadmin checks and sees that there is no channel "foo" yet. Webadmin creates a
+new CChan instance for "foo". The CChan constructor notices that "f" is not a
+valid channel prefix and instead calls itself "#foo". Then,
+CIRCNetwork::AddChan() would see that this channel already exists, delete the
+given channel and return false.
+
+However, webadmin didn't check this result and would continue changing settings
+on an already destroyed CChan instance.
+
+Fix this by checking if the channel exists after CChan had its chance to mess
+with the channel name. Also handle failures from CIRCNetwork::AddChan().
+
+Fixes #528.
+
+Signed-off-by: Uli Schlachter <psychon at znc.in>
+(cherry picked from commit 5e6e3be32acfeadeaf1fb3bb17bada08aec6432f)
+---
+ modules/webadmin.cpp | 16 +++++++++++-----
+ 1 file changed, 11 insertions(+), 5 deletions(-)
+
+diff --git a/modules/webadmin.cpp b/modules/webadmin.cpp
+index ec67508..2a03367 100644
+--- a/modules/webadmin.cpp
++++ b/modules/webadmin.cpp
+@@ -667,13 +667,19 @@ class CWebAdminMod : public CModule {
+ return true;
+ }
+
+- if (pNetwork->FindChan(sChanName.Token(0))) {
+- WebSock.PrintErrorPage("Channel [" + sChanName.Token(0) + "] already exists");
++ // This could change the channel name and e.g. add a "#" prefix
++ pChan = new CChan(sChanName, pNetwork, true);
++
++ if (pNetwork->FindChan(pChan->GetName())) {
++ WebSock.PrintErrorPage("Channel [" + pChan->GetName() + "] already exists");
++ delete pChan;
+ return true;
+ }
+
+- pChan = new CChan(sChanName, pNetwork, true);
+- pNetwork->AddChan(pChan);
++ if (!pNetwork->AddChan(pChan)) {
++ WebSock.PrintErrorPage("Could not add channel [" + pChan->GetName() + "]");
++ return true;
++ }
+ }
+
+ pChan->SetBufferCount(WebSock.GetParam("buffercount").ToUInt(), spSession->IsAdmin());
+@@ -699,7 +705,7 @@ class CWebAdminMod : public CModule {
+
+ CTemplate TmplMod;
+ TmplMod["User"] = pUser->GetUserName();
+- TmplMod["ChanName"] = sChanName;
++ TmplMod["ChanName"] = pChan->GetName();
+ TmplMod["WebadminAction"] = "change";
+ FOR_EACH_MODULE(it, pNetwork) {
+ (*it)->OnEmbeddedWebRequest(WebSock, "webadmin/channel", TmplMod);
+--
+1.9.1
+
Deleted: community-x86_64/PKGBUILD
===================================================================
--- community-x86_64/PKGBUILD 2014-05-05 23:38:13 UTC (rev 110737)
+++ community-x86_64/PKGBUILD 2014-05-05 23:39:14 UTC (rev 110738)
@@ -1,39 +0,0 @@
-# $Id$
-# Maintainer: Sébastien Luttringer
-# Contributor: Kaiting Chen <kaitocracy at gmail.com>
-# Contributor: mickael9 <mickael9 at gmail dot com>
-
-pkgname=znc
-pkgver=1.2
-pkgrel=2
-pkgdesc='An IRC bouncer with modules & scripts support'
-url='http://en.znc.in/wiki/index.php/ZNC'
-license=('GPL2')
-arch=('i686' 'x86_64')
-depends=('libsasl')
-makedepends=('tcl' 'python' 'perl')
-optdepends=('tcl: modtcl module'
- 'python: modpython module'
- 'perl: modperl module'
- 'cyrus-sasl: saslauth module')
-install=$pkgname.install
-source=("http://znc.in/releases/$pkgname-$pkgver.tar.gz")
-md5sums=('ef18e5402a82cc3fcab5c2ac5c2e6f3b')
-
-build() {
- cd $pkgname-$pkgver
- ./configure --prefix=/usr \
- --enable-cyrus \
- --enable-python \
- --enable-perl \
- --enable-tcl \
- --with-systemdsystemunitdir=/usr/lib/systemd/system
- make
-}
-
-package() {
- cd $pkgname-$pkgver
- make DESTDIR="$pkgdir" install
-}
-
-# vim:set ts=2 sw=2 et:
Copied: znc/repos/community-x86_64/PKGBUILD (from rev 110737, znc/trunk/PKGBUILD)
===================================================================
--- community-x86_64/PKGBUILD (rev 0)
+++ community-x86_64/PKGBUILD 2014-05-05 23:39:14 UTC (rev 110738)
@@ -0,0 +1,45 @@
+# $Id$
+# Maintainer: Sébastien Luttringer
+# Contributor: Kaiting Chen <kaitocracy at gmail.com>
+# Contributor: mickael9 <mickael9 at gmail dot com>
+
+pkgname=znc
+pkgver=1.2
+pkgrel=3
+pkgdesc='An IRC bouncer with modules & scripts support'
+url='http://en.znc.in/wiki/index.php/ZNC'
+license=('GPL2')
+arch=('i686' 'x86_64')
+depends=('libsasl')
+makedepends=('tcl' 'python' 'perl')
+optdepends=('tcl: modtcl module'
+ 'python: modpython module'
+ 'perl: modperl module'
+ 'cyrus-sasl: saslauth module')
+install=$pkgname.install
+source=("http://znc.in/releases/$pkgname-$pkgver.tar.gz"
+ '01-sec-correctly-handle-channel-names.patch')
+md5sums=('ef18e5402a82cc3fcab5c2ac5c2e6f3b'
+ 'SKIP')
+
+prepare() {
+ patch -p1 -d $pkgname-$pkgver < 01-sec-correctly-handle-channel-names.patch
+}
+
+build() {
+ cd $pkgname-$pkgver
+ ./configure --prefix=/usr \
+ --enable-cyrus \
+ --enable-python \
+ --enable-perl \
+ --enable-tcl \
+ --with-systemdsystemunitdir=/usr/lib/systemd/system
+ make
+}
+
+package() {
+ cd $pkgname-$pkgver
+ make DESTDIR="$pkgdir" install
+}
+
+# vim:set ts=2 sw=2 et:
Deleted: community-x86_64/znc.install
===================================================================
--- community-x86_64/znc.install 2014-05-05 23:38:13 UTC (rev 110737)
+++ community-x86_64/znc.install 2014-05-05 23:39:14 UTC (rev 110738)
@@ -1,29 +0,0 @@
-#/bin/sh
-
-# arg 1: the new package version
-post_install() {
- getent group znc >/dev/null || groupadd -g 136 znc
- getent passwd znc >/dev/null || useradd -r -d /var/lib/znc -u 136 -g 136 znc
- [ -d /var/lib/znc ] || install -dm 750 -o znc -g znc /var/lib/znc
- echo "==> Use 'znc --makeconf' as user znc to generate your first config"
- true
-}
-
-# arg 1: the new package version
-# arg 2: the old package version
-post_upgrade() {
- if [ "`vercmp $2 1.0-4`" -lt 0 ]; then
- [ -d /var/lib/znc ] || install -dm 750 -o znc -g znc /var/lib/znc
- usermod -d /var/lib/znc znc 2>/dev/null && echo '==> znc home directory has moved to /var/lib/znc'
- fi
- true
-}
-
-# arg 1: the old package version
-post_remove() {
- userdel -f znc >/dev/null 2>&1
- groupdel znc >/dev/null 2>&1
- true
-}
-
-# vim:set ts=2 sw=2 ft=sh et:
Copied: znc/repos/community-x86_64/znc.install (from rev 110737, znc/trunk/znc.install)
===================================================================
--- community-x86_64/znc.install (rev 0)
+++ community-x86_64/znc.install 2014-05-05 23:39:14 UTC (rev 110738)
@@ -0,0 +1,29 @@
+#/bin/sh
+
+# arg 1: the new package version
+post_install() {
+ getent group znc >/dev/null || groupadd -g 136 znc
+ getent passwd znc >/dev/null || useradd -r -d /var/lib/znc -u 136 -g 136 znc
+ [ -d /var/lib/znc ] || install -dm 750 -o znc -g znc /var/lib/znc
+ echo "==> Use 'znc --makeconf' as user znc to generate your first config"
+ true
+}
+
+# arg 1: the new package version
+# arg 2: the old package version
+post_upgrade() {
+ if [ "`vercmp $2 1.0-4`" -lt 0 ]; then
+ [ -d /var/lib/znc ] || install -dm 750 -o znc -g znc /var/lib/znc
+ usermod -d /var/lib/znc znc 2>/dev/null && echo '==> znc home directory has moved to /var/lib/znc'
+ fi
+ true
+}
+
+# arg 1: the old package version
+post_remove() {
+ userdel -f znc >/dev/null 2>&1
+ groupdel znc >/dev/null 2>&1
+ true
+}
+
+# vim:set ts=2 sw=2 ft=sh et:
More information about the arch-commits
mailing list