Merge branch 'master' into el5

This commit is contained in:
Nick Bebout 2014-04-14 22:01:51 -05:00
commit a528f2c920
1 changed files with 37 additions and 0 deletions

37
znc-crashbug.patch Normal file
View File

@ -0,0 +1,37 @@
diff --git a/modules/webadmin.cpp b/modules/webadmin.cpp
index 40a28d3..90ddfd2 100644
--- a/modules/webadmin.cpp
+++ b/modules/webadmin.cpp
@@ -668,13 +668,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());
@@ -700,7 +706,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);