[Pkg-gnupg-commit] [gpgme] 31/62: core: Use better error code when using select with a too high fd.

Daniel Kahn Gillmor dkg at fifthhorseman.net
Sat Nov 19 04:03:34 UTC 2016


This is an automated email from the git hooks/post-receive script.

dkg pushed a commit to branch experimental
in repository gpgme.

commit 6e57379c8e37c0863f7d12819a5a7d0781bd76d2
Author: Werner Koch <wk at gnupg.org>
Date:   Thu Nov 10 19:49:13 2016 +0100

    core: Use better error code when using select with a too high fd.
    
    * src/posix-io.c (_gpgme_io_select): Return EMFILE instead of EBADF.
    --
    
    Also EBADF seem more correct, EMFILE (Too man open files) gives
    a clearer message to the user that there are somehow too many files
    open.  The problem can be exhibited by running lots of threads,
    
    We should eventually move to poll but that would be a large change and
    so we better fix it with the planned migration of the I/O subsystem to
    libgpgrt (currently known as libgpg-error).
    
    Signed-off-by: Werner Koch <wk at gnupg.org>
---
 src/posix-io.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/posix-io.c b/src/posix-io.c
index c0b2f4f..c903072 100644
--- a/src/posix-io.c
+++ b/src/posix-io.c
@@ -607,7 +607,7 @@ _gpgme_io_select (struct io_select_fd_s *fds, size_t nfds, int nonblock)
           if (fds[i].fd >= FD_SETSIZE)
             {
               TRACE_END (dbg_help, " -BAD- ]");
-              gpg_err_set_errno (EBADF);
+              gpg_err_set_errno (EMFILE);
               return TRACE_SYSRES (-1);
             }
 	  assert (!FD_ISSET (fds[i].fd, &readfds));
@@ -622,7 +622,7 @@ _gpgme_io_select (struct io_select_fd_s *fds, size_t nfds, int nonblock)
           if (fds[i].fd >= FD_SETSIZE)
             {
               TRACE_END (dbg_help, " -BAD- ]");
-              gpg_err_set_errno (EBADF);
+              gpg_err_set_errno (EMFILE);
               return TRACE_SYSRES (-1);
             }
 	  assert (!FD_ISSET (fds[i].fd, &writefds));

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-gnupg/gpgme.git



More information about the Pkg-gnupg-commit mailing list