[Bug 1397250] Re: SIGPIPE not caught in do_atfork_child()

Sandro sandro.serafini at ocado.com
Wed Jul 13 08:58:53 UTC 2016


Please push upstream the new 266 version from the author's git
repository as this bug has serious drawbacks like breaking postgresql
installation on all our servers using it.

The 266 version is about 6 years old and contains a lot of bug fixes, I
think it would be worth to use it.

https://github.com/PADL/nss_ldap

Thank you,
Sandro

-- 
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to libnss-ldap in Ubuntu.
https://bugs.launchpad.net/bugs/1397250

Title:
  SIGPIPE not caught in do_atfork_child()

Status in nss_ldap:
  Fix Released
Status in libnss-ldap package in Ubuntu:
  Triaged

Bug description:
  Ubuntu version: Ubuntu 14.04.1 LTS
  Package version: libnss-ldap_264-2.2ubuntu4

  If a process using libnss-ldap calls fork() and SIGPIPE was blocked, the atfork() handler in the child process failed to catch the SIGPIPE as it was supposed to do, that is in the call to  do_close_no_unbind().  So that, the uncaught SIGPIPE will be eventually
  delivered when the child unblocks signals. This usually make the child process die unexpectedly.

  I found a well-known Linux vendor fixed this issue with the following
  patch. This unblocks the SIGPIPE before calling do_close_no_unbind()
  and restores the original sigmask afterwards:

  diff -up nss_ldap/ldap-nss.c nss_ldap/ldap-nss.c
  --- nss_ldap/ldap-nss.c 2009-12-07 20:57:33.000000000 -0500
  +++ nss_ldap/ldap-nss.c 2009-12-07 20:58:56.000000000 -0500
  @@ -532,8 +532,13 @@
   static void
   do_atfork_child (void)
   {
  +  sigset_t unblock, mask;
     debug ("==> do_atfork_child");
  +  sigemptyset(&unblock);
  +  sigaddset(&unblock, SIGPIPE);
  +  sigprocmask(SIG_UNBLOCK, &unblock, &mask);
     do_close_no_unbind ();
  +  sigprocmask(SIG_SETMASK, &mask, NULL);
     _nss_ldap_leave ();
     debug ("<== do_atfork_child");
   }

  I'd like to see this patch applied.

To manage notifications about this bug go to:
https://bugs.launchpad.net/nss-ldap/+bug/1397250/+subscriptions



More information about the foundations-bugs mailing list