From 621ec11ae3ee7d1d9557e833156d3d1c95b5fecb Mon Sep 17 00:00:00 2001 From: Christophe Dumez Date: Thu, 24 Jun 2010 21:34:31 +0000 Subject: [PATCH] Fix possible crash when using alternative speed limits --- src/bittorrent.cpp | 16 ++++++++++++++-- src/preferences.h | 10 ++++++++-- 2 files changed, 22 insertions(+), 4 deletions(-) diff --git a/src/bittorrent.cpp b/src/bittorrent.cpp index 4648d27aa..592ee76d9 100644 --- a/src/bittorrent.cpp +++ b/src/bittorrent.cpp @@ -653,8 +653,20 @@ void Bittorrent::useAlternativeSpeedsLimit(bool alternative) { s->set_download_rate_limit(Preferences::getAltGlobalDownloadLimit()*1024); s->set_upload_rate_limit(Preferences::getAltGlobalUploadLimit()*1024); } else { - s->set_download_rate_limit(Preferences::getGlobalDownloadLimit()*1024); - s->set_upload_rate_limit(Preferences::getGlobalUploadLimit()*1024); + int down_limit = Preferences::getGlobalDownloadLimit(); + if(down_limit <= 0) { + down_limit = -1; + } else { + down_limit *= 1024; + } + s->set_download_rate_limit(down_limit); + int up_limit = Preferences::getGlobalUploadLimit(); + if(up_limit <= 0) { + up_limit = -1; + } else { + up_limit *= 1024; + } + s->set_upload_rate_limit(up_limit); } emit alternativeSpeedsModeChanged(alternative); } diff --git a/src/preferences.h b/src/preferences.h index 735f166f5..1cae975b7 100644 --- a/src/preferences.h +++ b/src/preferences.h @@ -331,7 +331,10 @@ public: static int getAltGlobalDownloadLimit() { QSettings settings("qBittorrent", "qBittorrent"); - return settings.value(QString::fromUtf8("Preferences/Connection/GlobalDLLimitAlt"), 10).toInt(); + int ret = settings.value(QString::fromUtf8("Preferences/Connection/GlobalDLLimitAlt"), 10).toInt(); + if(ret <= 0) + ret = 10; + return ret; } static void setAltGlobalDownloadLimit(int limit) { @@ -342,7 +345,10 @@ public: static int getAltGlobalUploadLimit() { QSettings settings("qBittorrent", "qBittorrent"); - return settings.value(QString::fromUtf8("Preferences/Connection/GlobalUPLimitAlt"), 10).toInt(); + int ret = settings.value(QString::fromUtf8("Preferences/Connection/GlobalUPLimitAlt"), 10).toInt(); + if(ret <= 0) + ret = 10; + return ret; } static void setAltGlobalUploadLimit(int limit) {