Summary: | Crash when "Use DHT..." is turned on | ||
---|---|---|---|
Product: | [Applications] ktorrent | Reporter: | PhobosK <phobosk> |
Component: | general | Assignee: | Stephan Kulow <coolo> |
Status: | RESOLVED UNMAINTAINED | ||
Severity: | crash | CC: | cfeck, joris.guisson |
Priority: | NOR | ||
Version: | unspecified | ||
Target Milestone: | --- | ||
Platform: | unspecified | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: |
Description
PhobosK
2007-07-24 21:59:50 UTC
This is not 144416, this is a crash in libsocks, which is part of dante. You see dante does not handle IPv6, and the moment it sees something it doesn't like, it craps out, it just calls abort(), which will cause the application using it to exit with a SIGABRT. I'm going to pass this bug to the person in charge of kdelibs, because KSocks should not pass AF_INET6 addresses to dante. Btw, the offending function in the dante code is this (lib/util.c) : struct sockshost_t * sockaddr2sockshost(addr, host) const struct sockaddr *addr; struct sockshost_t *host; { switch (addr->sa_family) { case AF_INET: host->atype = SOCKS_ADDR_IPV4; /* LINTED pointer casts may be troublesome */ host->addr.ipv4 = TOCIN(addr)->sin_addr; /* LINTED pointer casts may be troublesome */ host->port = TOCIN(addr)->sin_port; break; default: SERRX(addr->sa_family); } return host; } And the SERRX macro is defined as this (include/common.h) : #define SERRX(failure) \ do { \ SWARNX(failure); \ abort(); \ } while (lintnoloop_common_h) This is just horrible, wtf where the dante people thinking when they wrote this ? This crash is from the KDE 3 version of KTorrent, which is no longer maintained. If you are experiencing it with KDE 4, please report a new bug or add an updated backtrace. |