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;
signature.asc
Description: Digital signature