On Tue, Jan 31, 2017 at 12:14 PM, Simon McVittie <s...@debian.org> wrote: > On Tue, 31 Jan 2017 at 11:15:32 +0100, Mathieu Malaterre wrote: >> I'd like to discuss addition of a new lintian checks for >> getenv/setenv/putenv used in shared libraries. > > A massive number of libraries call getenv(). This is not something that > you can just ban. In many cases (any D-Bus implementation, anything > that uses XDG_whatever_DIRS, anything that uses PATH...) it is also > "ABI" that would lead to broken systems if removed. > > A massive number of libraries also call gettext(), which has similar > issues with setlocale() as the setenv-equivalent. This is not something > that you can ban either. > > The policy that the GLib/GNOME stack has chosen (and documented!) is to > say that libraries in that stack may call getenv() and gettext() freely, > but applications using those libraries are only allowed to call setenv() > or setlocale() near the beginning of main(), before a second thread > is created. This is by no means ideal, but given the constraints I > can't see anything better[1]. > > Functions in GLib that indirectly call setenv() or setlocale() are > documented as having the same constraints as setenv() itself. > Again, this is not ideal but is about as good as we're going to get.
Ok, I see your point. I'll reformulate my original bug report as a documentation enhancement then. Thanks for clarification, I knew this was difficult to reproduce a crash 'in the wild'. -M