[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: