Update ktorrent package to 2.2.8 and fix internal geoip database.

This resolves bug report 363.
pull/1/head
Darrell Anderson 13 years ago
parent c6c4865cd4
commit 5af9907fee

@ -1,3 +1,11 @@
Changes in 2.2.8 :
- Backported some security fixes for the webinterface from KDE4 version
Changes in 2.2.7 :
- Fix crash when loading articles in RSS plugin fails (161475)
- Fix SIGBUS caused crash on sparc
- Backported fix from KDE4 version for an infinite recursive loop in the QM
Changes in 2.2.6 : Changes in 2.2.6 :
- Some OpenBSD compile fixes - Some OpenBSD compile fixes
- Fix lock file not working on NFS home directories by moving it to /tmp - Fix lock file not working on NFS home directories by moving it to /tmp

@ -1,4 +1,4 @@
SUBDIRS = translations libktorrent plugins apps scripts SUBDIRS = libktorrent plugins apps scripts translations
# $(UTESTS_DIR) # $(UTESTS_DIR)

@ -4649,7 +4649,8 @@ fi
AC_DEFUN([KDE_CHECK_PYTHON], AC_DEFUN([KDE_CHECK_PYTHON],
[ [
KDE_CHECK_PYTHON_INTERN("2.5", KDE_CHECK_PYTHON_INTERN("2.6",
[KDE_CHECK_PYTHON_INTERN("2.5",
[KDE_CHECK_PYTHON_INTERN("2.4", [KDE_CHECK_PYTHON_INTERN("2.4",
[KDE_CHECK_PYTHON_INTERN("2.3", [KDE_CHECK_PYTHON_INTERN("2.3",
[KDE_CHECK_PYTHON_INTERN("2.2", [KDE_CHECK_PYTHON_INTERN("2.2",
@ -4661,6 +4662,7 @@ AC_DEFUN([KDE_CHECK_PYTHON],
]) ])
]) ])
]) ])
])
]) ])
AC_DEFUN([KDE_CHECK_STL], AC_DEFUN([KDE_CHECK_STL],

13690
aclocal.m4 vendored

File diff suppressed because it is too large Load Diff

@ -40,7 +40,7 @@ dnl Perform program name transformation
AC_ARG_PROGRAM AC_ARG_PROGRAM
dnl Automake doc recommends to do this only here. (Janos) dnl Automake doc recommends to do this only here. (Janos)
AM_INIT_AUTOMAKE(ktorrent, 2.2.6) dnl searches for some needed programs AM_INIT_AUTOMAKE(ktorrent, 2.2.8) dnl searches for some needed programs
KDE_SET_PREFIX KDE_SET_PREFIX

@ -1,6 +1,6 @@
#MIN_CONFIG(3.3) #MIN_CONFIG(3.3)
AM_INIT_AUTOMAKE(ktorrent,2.2.6) AM_INIT_AUTOMAKE(ktorrent,2.2.8)
dnl #### Check for FSEEK variants dnl #### Check for FSEEK variants
AC_SYS_LARGEFILE AC_SYS_LARGEFILE

@ -27,10 +27,10 @@ namespace kt
{ {
const bt::Uint32 MAJOR = 2; const bt::Uint32 MAJOR = 2;
const bt::Uint32 MINOR = 2; const bt::Uint32 MINOR = 2;
const char VERSION_STRING[] = "2.2.6"; const char VERSION_STRING[] = "2.2.8";
const char PEER_ID[] = "-KT2260-"; const char PEER_ID[] = "-KT2280-";
} }
#define KT_VERSION_MACRO "2.2.6" #define KT_VERSION_MACRO "2.2.8"
#endif #endif

@ -49,6 +49,7 @@ namespace bt
keep_seeding = true; //test. Will be passed from Core keep_seeding = true; //test. Will be passed from Core
paused_state = false; paused_state = false;
ordering = false;
} }
@ -439,12 +440,14 @@ namespace bt
void QueueManager::orderQueue() void QueueManager::orderQueue()
{ {
if (!downloads.count()) if (!downloads.count() || ordering)
return; return;
if (paused_state || exiting) if (paused_state || exiting)
return; return;
ordering = true;
downloads.sort(); downloads.sort();
TQPtrList<TorrentInterface>::const_iterator it = downloads.begin(); TQPtrList<TorrentInterface>::const_iterator it = downloads.begin();
@ -584,7 +587,7 @@ namespace bt
} }
} }
} }
ordering = false;
} }
void QueueManager::torrentFinished(kt::TorrentInterface* tc) void QueueManager::torrentFinished(kt::TorrentInterface* tc)

@ -169,6 +169,7 @@ namespace bt
bool paused_state; bool paused_state;
bool keep_seeding; bool keep_seeding;
bool exiting; bool exiting;
bool ordering;
}; };
} }
#endif #endif

@ -139,12 +139,11 @@ namespace bt
{ {
if (i < 16) if (i < 16)
{ {
w[i] = ntohl(*(const Uint32*)(chunk + (4*i))); // w[i] = ntohl(*(const Uint32*)(chunk + (4*i))); <- crashes on sparc
/* w[i] = (chunk[4*i] << 24) | w[i] = (chunk[4*i] << 24) |
(chunk[4*i + 1] << 16) | (chunk[4*i + 1] << 16) |
(chunk[4*i + 2] << 8) | (chunk[4*i + 2] << 8) |
chunk[4*i + 3]; chunk[4*i + 3];
*/
} }
else else
{ {

@ -194,6 +194,8 @@ namespace kt
TQFile file(filename); TQFile file(filename);
if (file.exists()) if (file.exists())
{
try
{ {
file.open( IO_ReadOnly ); file.open( IO_ReadOnly );
TQDataStream in(&file); TQDataStream in(&file);
@ -201,6 +203,11 @@ namespace kt
in >> m_articles; in >> m_articles;
emit articlesChanged( m_articles ); emit articlesChanged( m_articles );
} }
catch (...)
{
m_articles.clear();
}
}
} }
void RssFeed::saveArticles() void RssFeed::saveArticles()

@ -23,6 +23,8 @@
#include <stdint.h> #include <stdint.h>
#include <stdint.h> //uint32_t, int64_t
#include <tqwidget.h> #include <tqwidget.h>
#include <tqpainter.h> #include <tqpainter.h>
#include <tqstring.h> #include <tqstring.h>

@ -434,6 +434,14 @@ namespace kt
Uint32 len = data.size(); Uint32 len = data.size();
int pos = TQString(data).find("\r\n\r\n"); int pos = TQString(data).find("\r\n\r\n");
if (!session.logged_in || !checkSession(hdr))
{
// You can't post torrents if you are not logged in
// or the session is not OK
redirectToLoginPage(hdlr);
return;
}
if (pos == -1 || pos + 4 >= len || ptr[pos + 4] != 'd') if (pos == -1 || pos + 4 >= len || ptr[pos + 4] != 'd')
{ {
HttpResponseHeader rhdr(500); HttpResponseHeader rhdr(500);

@ -82,6 +82,8 @@ namespace kt
for ( it = args.begin(); it != args.end(); ++it ) for ( it = args.begin(); it != args.end(); ++it )
{ {
// Check for string delimiters, don't want PHP injection attacks
if (!containsDelimiters(it.key()) && !containsDelimiters(it.data()))
ts << TQString("$_REQUEST['%1']=\"%2\";\n").arg(it.key()).arg(it.data()); ts << TQString("$_REQUEST['%1']=\"%2\";\n").arg(it.key()).arg(it.data());
} }
ts.writeRawBytes(php_s.data() + off,php_s.size() - off); // the rest of the script ts.writeRawBytes(php_s.data() + off,php_s.size() - off); // the rest of the script
@ -99,6 +101,11 @@ namespace kt
return launch(data); return launch(data);
} }
bool PhpHandler::containsDelimiters(const QString & str)
{
return str.contains("\"") || str.contains("'");
}
void PhpHandler::onExited() void PhpHandler::onExited()
{ {
// read remaining data // read remaining data

@ -47,6 +47,9 @@ namespace kt
signals: signals:
void finished(); void finished();
private:
bool containsDelimiters(const QString & str);
private: private:
TQByteArray output; TQByteArray output;
PhpInterface *php_i; PhpInterface *php_i;

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff
Loading…
Cancel
Save