some boundary checks (prevents erroneous/bad clients from crashing the core)
authorMarcus Eggenberger <egs@quassel-irc.org>
Mon, 14 Apr 2008 12:08:18 +0000 (12:08 +0000)
committerMarcus Eggenberger <egs@quassel-irc.org>
Mon, 14 Apr 2008 12:08:18 +0000 (12:08 +0000)
src/common/bufferviewconfig.cpp
version.inc

index d54097d..1affaba 100644 (file)
@@ -131,6 +131,11 @@ void BufferViewConfig::initSetBufferList(const QList<BufferId> &buffers) {
 void BufferViewConfig::addBuffer(const BufferId &bufferId, int pos) {
   if(_buffers.contains(bufferId))
     return;
+
+  if(pos < 0)
+    pos = 0;
+  if(pos > _buffers.count())
+    pos = _buffers.count();
   
   _buffers.insert(pos, bufferId);
   emit bufferAdded(bufferId, pos);
@@ -140,6 +145,11 @@ void BufferViewConfig::moveBuffer(const BufferId &bufferId, int pos) {
   if(!_buffers.contains(bufferId))
     return;
 
+  if(pos < 0)
+    pos = 0;
+  if(pos >= _buffers.count())
+    pos = _buffers.count() - 1;
+
   _buffers.move(_buffers.indexOf(bufferId), pos);
   emit bufferMoved(bufferId, pos);
 }
index e25d676..f2f8567 100644 (file)
@@ -5,7 +5,7 @@
 
   quasselVersion = "0.2.0-beta1-pre";
   quasselDate = "2008-04-14";
-  quasselBuild = 736;
+  quasselBuild = 738;
 
   //! Minimum client build number the core needs
   clientBuildNeeded = 731;