Re: Crash on backend exit w/ OpenLDAP [2.4.24, 2.4.31]
От | Noah Misch |
---|---|
Тема | Re: Crash on backend exit w/ OpenLDAP [2.4.24, 2.4.31] |
Дата | |
Msg-id | 20140712034350.GA1968433@tornado.leadboat.com обсуждение исходный текст |
Ответ на | Re: Crash on backend exit w/ OpenLDAP [2.4.24, 2.4.31] (Tom Lane <tgl@sss.pgh.pa.us>) |
Список | pgsql-hackers |
On Thu, Jun 19, 2014 at 01:01:34PM -0400, Tom Lane wrote: > Noah Misch <noah@leadboat.com> writes: > > On Thu, Jun 12, 2014 at 05:02:19PM -0400, Noah Misch wrote: > >> You can cause the at-exit crash by building PostgreSQL against OpenLDAP > >> 2.4.31, connecting with LDAP authentication, and issuing "LOAD 'dblink'". > > >> 4. Detect older OpenLDAP versions at runtime, just before we would otherwise > >> initialize OpenLDAP, and raise an error. Possibly make the same check at > >> compile time, for packager convenience. > > > Having pondered this some more, I lean toward the following conservative fix. > > Add to all supported branches a test case that triggers the crash and a > > configure-time warning if the OpenLDAP version falls in the vulnerable range. > > So long as those who build from source monitor either "configure" output or > > test suite failures, they'll have the opportunity to head off the problem. > > +1 for a configure warning, but I share your concern that it's likely to > go unnoticed (sometimes I wish autoconf were not so chatty...). > I'm not sure about the practicality of adding a test case --- how will we > test that if no LDAP server is at hand? Merely attempting an LDAP connection (to a closed port, for example) initializes the library far enough to trigger the problem. Here's a patch implementing the warning and test case. The test case is based on the one I posted upthread, modified to work with installcheck, work with non-LDAP builds, and close a race condition. -- Noah Misch EnterpriseDB http://www.enterprisedb.com
Вложения
В списке pgsql-hackers по дате отправления: