Package: libircclient1
Version: 1.3+dfsg1-3
Severity: normal
File: libircclient
Tags: upstream patch ipv6

Dear Maintainer,

current upstream versions and down to 1.3 (possibly even older) versions
of libircclient have an issue with ipv6 handling. When connecting to a
ipv6 address it segfaults on receiving the first message from the server.

It's caused by writing a sockaddr6_in into a sockaddr_in which overwrites
some callback function pointers.

The bug is reported upstream but since it's possibly a security issue
and libircclients' upstream is very slow you might want to consider
applying this small patch.

-- System Information:
Debian Release: 7.6
  APT prefers stable-updates
  APT policy: (500, 'stable-updates'), (500, 'stable')
Architecture: amd64 (x86_64)

Kernel: Linux 3.2.0-4-amd64 (SMP w/1 CPU core)
Locale: LANG=en_US.utf8, LC_CTYPE=en_US.utf8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages libircclient1 depends on:
ii  libc6  2.13-38+deb7u4

libircclient1 recommends no packages.

libircclient1 suggests no packages.

-- no debconf information
Index: libircclient.c
===================================================================
--- libircclient.c	(revision 125)
+++ libircclient.c	(working copy)
@@ -817,7 +817,7 @@
 		if (saddr.ss_family == AF_INET)
 			memcpy (&session->local_addr, &((struct sockaddr_in *)&laddr)->sin_addr, sizeof(struct in_addr));
 		else
-			memcpy (&session->local_addr, &((struct sockaddr_in6 *)&laddr)->sin6_addr, sizeof(struct in6_addr));
+			memcpy (&session->local_addr6, &((struct sockaddr_in6 *)&laddr)->sin6_addr, sizeof(struct in6_addr));
 
 #if defined (ENABLE_DEBUG)
 		if ( IS_DEBUG_ENABLED(session) )

Reply via email to