← Back to team overview

desktop-packages team mailing list archive

[Bug 1511735] Re: libnl: fail to bind() netlink sockets

 

Yes you're right. Here is an updated tar file with all patches (the first four patches are the same).
The following patches are added:
- 9614acf4c435 lib/nl: preserve s_local if nl_connect() fails
  https://github.com/thom311/libnl/commit/9614acf4c435
- f78c3e82398a socket: clear port when unable to generate local port
  https://github.com/thom311/libnl/commit/f78c3e82398a
- 96e1e5bdc2e8 socket: add fallback for nl_connect() by trying to bind to unspecified local port
  https://github.com/thom311/libnl/commit/96e1e5bdc2e8
- eaa75b7c7d3e socket: fix assertion in nl_connect() when all ports are already in use
  https://github.com/thom311/libnl/commit/eaa75b7c7d3e

With this new series:
root@ubuntu1404:~# python ./libnl3-test-rh1249158.py a b c d
ulimit(NOFILE) = (2048, 4096)
Test: PID=25856
TEST (a)...
...done
TEST (b)...
...done
TEST (c)...
...done
TEST (d)...
...done
root@ubuntu1404:~# cd libnl-bp/
root@ubuntu1404:~/libnl-bp# if ./example.sh ; then echo success ; else echo failure ; fi
gcc -o example -I/usr/include/libnl3 example.c -lnl-3 -lnl-genl-3
set manually the local port to 25867 (pid: 25866)
local port has been set by the libnl to 2793432331 (pid: 25867)
success

** Attachment added: "20151116_patches.tar"
   https://bugs.launchpad.net/ubuntu/+source/libnl3/+bug/1511735/+attachment/4535521/+files/20151116_patches.tar

-- 
You received this bug notification because you are a member of Desktop
Packages, which is subscribed to libnl3 in Ubuntu.
https://bugs.launchpad.net/bugs/1511735

Title:
  libnl: fail to bind() netlink sockets

Status in libnl3 package in Ubuntu:
  Fix Released
Status in libnl3 source package in Trusty:
  New

Bug description:
  The following upstream patches are needed in order to avoid failures
  when binding a netlink socket:

  1f734a8f892a lib/socket: randomize the generated local port
  http://git.infradead.org/users/tgr/libnl.git/commitdiff/1f734a8f892a

  4dd5fdd0af2c lib/socket: retry generate local port in nl_connect on ADDRINUSE
  http://git.infradead.org/users/tgr/libnl.git/commitdiff/4dd5fdd0af2c

  027157898708 lib/socket: don't fail if no more local ports can be assigned in nl_socket_alloc
  http://git.infradead.org/users/tgr/libnl.git/commitdiff/027157898708

  0fd510b3673f lib/socket: use proper typed constant UINT32_MAX for uint32_t typed port
  http://git.infradead.org/users/tgr/libnl.git/commitdiff/0fd510b3673f

  Without these patches, an application which opens and closes regularly
  netlink sockets can easily fails to bind them.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/libnl3/+bug/1511735/+subscriptions