Home GnuPG
Diffusion GnuPG 7ffedfab8909

gpg-agent: Avoid getting stuck in shutdown pending state.

Description

gpg-agent: Avoid getting stuck in shutdown pending state.

* agent/gpg-agent.c (handle_connections): Always check inotify fds.

I noticed a gpg-agent processed, probably in shutdown_pending state,
which was selecting on only these two inotify fds. The select
returned immediately but because we did not handle the fds in
shutdown_pending state they were not read and the next select call
returned one of them immediately again. Actually that should not
hanppen because the

if (active_connections == 0)
  break; /* ready */

should have terminated the loop. For unknown reasons (maybe be just a
connection thread terminated in a gdb session) that did not happen.
By moving the check outside of the shutdown_pending condition and
closing the fd after they have been triggered the code should be more
robust.

(cherry picked from commit 5d83eb9226c0ce608ec284d8c9bc22ce84a00c25)

  • Signed-off-by: Werner Koch <wk@gnupg.org>

Details

Provenance
wernerAuthored on Nov 13 2017, 10:52 AM
Parents
rG760aa8aadafb: agent: Use clock or clock_gettime for calibration.
Branches
Unknown
Tags
Unknown