GnuPG 2.1.0 "modern" released

Michael Felt aixtools at gmail.com
Thu Dec 4 00:01:32 CET 2014


I sent a possible patch. the value returned in rl is MAX_INT32, not -1.

not sure if looking for the smallest value is what get max fds should be
doing though.
On Dec 3, 2014 9:20 PM, "Werner Koch" <wk at gnupg.org> wrote:

> On Wed,  3 Dec 2014 11:40, aixtools at gmail.com said:
>
> > max. file descriptors: 2147483647
> >
> > Is this perhaps a bug - at least for the test logic - because this is an
> > unusual number. And, is the test goinf to try an open that many file
> > descriptors? I ulimit will stop much earlier - also because it says the
> max
> > is 2000 not INT32_MAX!
>
> This test is t-exechelp.c which uses the function below from
> exechelp-posix.c:
>
>
> --8<---------------cut here---------------start------------->8---
> /* Return the maximum number of currently allowed open file
>    descriptors.  Only useful on POSIX systems but returns a value on
>    other systems too.  */
> int
> get_max_fds (void)
> {
>   int max_fds = -1;
> #ifdef HAVE_GETRLIMIT
>   struct rlimit rl;
>
> # ifdef RLIMIT_NOFILE
>   if (!getrlimit (RLIMIT_NOFILE, &rl))
>     max_fds = rl.rlim_max;
> # endif
>
> # ifdef RLIMIT_OFILE
>   if (max_fds == -1 && !getrlimit (RLIMIT_OFILE, &rl))
>     max_fds = rl.rlim_max;
>
> # endif
> #endif /*HAVE_GETRLIMIT*/
>
> #ifdef _SC_OPEN_MAX
>   if (max_fds == -1)
>     {
>       long int scres = sysconf (_SC_OPEN_MAX);
>       if (scres >= 0)
>         max_fds = scres;
>     }
> #endif
>
> #ifdef _POSIX_OPEN_MAX
>   if (max_fds == -1)
>     max_fds = _POSIX_OPEN_MAX;
> #endif
>
> #ifdef OPEN_MAX
>   if (max_fds == -1)
>     max_fds = OPEN_MAX;
> #endif
>
>   if (max_fds == -1)
>     max_fds = 256;  /* Arbitrary limit.  */
>
>   return max_fds;
> }
> --8<---------------cut here---------------end--------------->8---
>
> To return the number of possible open file descriptors.  This is
> required to close all file descriptors after a fork and before the exec.
> Can you check which part of it is responsible for returning INT32_MAX?
>
> > nofiles(descriptors) 2000
>
> I would have expected that HAVE_GETRLIMIT and RLIMIT_NOFILE are both
> defined in config.h because your ulimit seems to use it.
>
>
> Salam-Shalom,
>
>    Werner
>
> --
> Die Gedanken sind frei.  Ausnahmen regelt ein Bundesgesetz.
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: </pipermail/attachments/20141204/d0cb3dc5/attachment-0001.html>


More information about the Gnupg-users mailing list