diff options
author | NIIBE Yutaka <[email protected]> | 2019-06-04 04:39:46 +0000 |
---|---|---|
committer | NIIBE Yutaka <[email protected]> | 2019-06-04 04:39:46 +0000 |
commit | 537fbe13af6a70e105982c4b69c1bcc3908ffb08 (patch) | |
tree | 0f66ef746cdf06f62a5b0b7f256a2da53c31dda9 | |
parent | agent: Allow TERM="". (diff) | |
download | gnupg-537fbe13af6a70e105982c4b69c1bcc3908ffb08.tar.gz gnupg-537fbe13af6a70e105982c4b69c1bcc3908ffb08.zip |
g10: Block signals in g10_exit.
* g10/gpg.c (g10_exit): Block all signals before calling
emergency_cleanup.
--
There is a race condition here which results crash of the process.
When a signal is delivered in emergency_cleanup, it is called again.
This change fixes the problem.
GnuPG-bug-id: 2747
Signed-off-by: NIIBE Yutaka <[email protected]>
-rw-r--r-- | g10/gpg.c | 1 |
1 files changed, 1 insertions, 0 deletions
@@ -5231,6 +5231,7 @@ g10_exit( int rc ) if (opt.debug) gcry_control (GCRYCTL_DUMP_SECMEM_STATS ); + gnupg_block_all_signals (); emergency_cleanup (); rc = rc? rc : log_get_errorcount(0)? 2 : g10_errors_seen? 1 : 0; |