Please sign in to comment.
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 <email@example.com>
- Loading branch information...