Bug#605266: unblock: libasyncns/0.3-1.1
Package: release.debian.org
Severity: normal
User: release.debian.org@packages.debian.org
Usertags: unblock
Please unblock package libasyncns
This fixes an RC bug (#566139) and solves an RC problem in pulseaudio
caused by this bug (#597449, already merged). Thanks to Tanguy Ortolo
for fixing this issue.
unblock libasyncns/0.3-1.1
Debdiff to the previous version in the archive:
diff -u libasyncns-0.3/debian/changelog libasyncns-0.3/debian/changelog
--- libasyncns-0.3/debian/changelog
+++ libasyncns-0.3/debian/changelog
@@ -1,3 +1,11 @@
+libasyncns (0.3-1.1) unstable; urgency=low
+
+ * Non-maintainer upload.
+ * libasyncns/asyncns.c: Fix data alignment issue on armel, backported from
+ upstream. (Closes: #566139)
+
+ -- Tanguy Ortolo <tanguy+debian@ortolo.eu> Thu, 25 Nov 2010 20:55:54 +0100
+
libasyncns (0.3-1) unstable; urgency=low
* New upstream release.
only in patch2:
unchanged:
--- libasyncns-0.3.orig/libasyncns/asyncns.c
+++ libasyncns-0.3/libasyncns/asyncns.c
@@ -646,7 +646,7 @@
}
static void *unserialize_addrinfo(void *p, struct addrinfo **ret_ai, size_t *length) {
- addrinfo_serialization_t *s = p;
+ addrinfo_serialization_t s;
size_t l;
struct addrinfo *ai;
assert(p);
@@ -656,7 +656,9 @@
if (*length < sizeof(addrinfo_serialization_t))
return NULL;
- l = sizeof(addrinfo_serialization_t) + s->ai_addrlen + s->canonname_len;
+ memcpy(&s, p, sizeof(s));
+
+ l = sizeof(addrinfo_serialization_t) + s.ai_addrlen + s.canonname_len;
if (*length < l)
return NULL;
@@ -667,23 +669,23 @@
ai->ai_canonname = NULL;
ai->ai_next = NULL;
- if (s->ai_addrlen && !(ai->ai_addr = malloc(s->ai_addrlen)))
+ if (s.ai_addrlen && !(ai->ai_addr = malloc(s.ai_addrlen)))
goto fail;
- if (s->canonname_len && !(ai->ai_canonname = malloc(s->canonname_len)))
+ if (s.canonname_len && !(ai->ai_canonname = malloc(s.canonname_len)))
goto fail;
- ai->ai_flags = s->ai_flags;
- ai->ai_family = s->ai_family;
- ai->ai_socktype = s->ai_socktype;
- ai->ai_protocol = s->ai_protocol;
- ai->ai_addrlen = s->ai_addrlen;
+ ai->ai_flags = s.ai_flags;
+ ai->ai_family = s.ai_family;
+ ai->ai_socktype = s.ai_socktype;
+ ai->ai_protocol = s.ai_protocol;
+ ai->ai_addrlen = s.ai_addrlen;
if (ai->ai_addr)
- memcpy(ai->ai_addr, (uint8_t*) p + sizeof(addrinfo_serialization_t), s->ai_addrlen);
+ memcpy(ai->ai_addr, (uint8_t*) p + sizeof(addrinfo_serialization_t), s.ai_addrlen);
if (ai->ai_canonname)
- memcpy(ai->ai_canonname, (uint8_t*) p + sizeof(addrinfo_serialization_t) + s->ai_addrlen, s->canonname_len);
+ memcpy(ai->ai_canonname, (uint8_t*) p + sizeof(addrinfo_serialization_t) + s.ai_addrlen, s.canonname_len);
*length -= l;
*ret_ai = ai;
-- System Information:
Debian Release: squeeze/sid
APT prefers testing
APT policy: (800, 'testing'), (700, 'unstable'), (50, 'experimental')
Architecture: amd64 (x86_64)
Kernel: Linux 2.6.36-trunk-amd64 (SMP w/2 CPU cores)
Locale: LANG=de_CH.UTF-8, LC_CTYPE=de_CH.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Reply to: