Dear maintainer,

I've prepared an NMU for libasyncns (versioned as 0.3-1.1) and
uploaded it to unstable. Sorry for not sending the diff earlier.

Regards.

-- 
Ever tried. Ever failed. No matter.
Try again. Fail again. Fail better.
~ Samuel Beckett ~
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+deb...@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;

Attachment: signature.asc
Description: Digital signature

Reply via email to