Package: release.debian.org Severity: normal User: release.debian....@packages.debian.org Usertags: unblock
Please unblock package libnfnetlink This upload cherry-picks an upstream fix to deal with #684863 ("Conntrackd fails to start. No dedicated link detected."). debdiff attached unblock libnfnetlink/1.0.0-1.1 -- System Information: Debian Release: 7.0 APT prefers unstable APT policy: (500, 'unstable'), (101, 'experimental') Architecture: i386 (i686) Kernel: Linux 3.2.0-4-686-pae (SMP w/2 CPU cores) Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash
diff -u libnfnetlink-1.0.0/debian/changelog libnfnetlink-1.0.0/debian/changelog --- libnfnetlink-1.0.0/debian/changelog +++ libnfnetlink-1.0.0/debian/changelog @@ -1,3 +1,15 @@ +libnfnetlink (1.0.0-1.1) unstable; urgency=low + + [ David Prevot ] + * Non-maintainer upload. + * iftable: fix incomplete list of interfaces via nlif_query. RTM_GETLINK + with NLM_F_DUMP returns a multi-part netlink message. The existing code + only handled the first message of it, thus, ignoring the remaining + interfaces. This causes a bug in conntrackd. Report 8b15e48 from upstream. + (Closes: #684863). + + -- Christian Perrier <bubu...@debian.org> Tue, 01 Jan 2013 19:19:15 +0100 + libnfnetlink (1.0.0-1) unstable; urgency=low [ Max Kellermann ] only in patch2: unchanged: --- libnfnetlink-1.0.0.orig/src/rtnl.h +++ libnfnetlink-1.0.0/src/rtnl.h @@ -32,5 +32,6 @@ struct rtnl_handle *rtnl_open(void); void rtnl_close(struct rtnl_handle *rtnl_handle); int rtnl_receive(struct rtnl_handle *rtnl_handle); +int rtnl_receive_multi(struct rtnl_handle *rtnl_handle); #endif only in patch2: unchanged: --- libnfnetlink-1.0.0.orig/src/iftable.c +++ libnfnetlink-1.0.0/src/iftable.c @@ -295,6 +295,16 @@ return -1; } +static int nlif_catch_multi(struct nlif_handle *h) +{ + assert(h != NULL); + + if (h->rtnl_handle) + return rtnl_receive_multi(h->rtnl_handle); + + return -1; +} + /** * nlif_query - request a dump of interfaces available in the system * @h: pointer to a valid nlif_handler @@ -306,7 +316,7 @@ if (rtnl_dump_type(h->rtnl_handle, RTM_GETLINK) < 0) return -1; - return nlif_catch(h); + return nlif_catch_multi(h); } /** Returns socket descriptor for the netlink socket only in patch2: unchanged: --- libnfnetlink-1.0.0.orig/src/rtnl.c +++ libnfnetlink-1.0.0/src/rtnl.c @@ -193,6 +193,15 @@ return 1; } +int rtnl_receive_multi(struct rtnl_handle *rtnl_handle) +{ + while (1) { + if (rtnl_receive(rtnl_handle) <= 0) + break; + } + return 1; +} + /* rtnl_open - constructor of rtnetlink module */ struct rtnl_handle *rtnl_open(void) {