tags 499569 + patch pending
thanks

Hi gnupg2-maintainers,

Here is the NMU for gnupg2 (versioned as 2.0.9-3.1).
pth seems to mess with the sigprocmask on i386 at least. As such
deinitializing pth (with pth_kill) before execv seems like a good idea.
Because that does not quite do the trick, I also "manually" save
and restore the sigprogmask.
Regarding the problem of reproducing, I should add to Mirco's comments
that it apparently only occurs when running in a i386 kernel, not in an
i386 chroot on and amd64 system.
After some more testing, I will upload the NMU.

Kind regards

T.

diff -u gnupg2-2.0.9/debian/changelog gnupg2-2.0.9/debian/changelog
--- gnupg2-2.0.9/debian/changelog
+++ gnupg2-2.0.9/debian/changelog
@@ -1,3 +1,12 @@
+gnupg2 (2.0.9-3.1) unstable; urgency=low
+
+  * Non-maintainer upload.
+  * agent/gpg-agent.c: Deinit the threading library before exec'ing
+    the command to run in --daemon mode. And because that still doesn't
+    restore the sigprocmask, do that manually. Closes: #499569
+
+ -- Thomas Viehmann <[EMAIL PROTECTED]>  Sat, 04 Oct 2008 10:25:53 +0200
+
 gnupg2 (2.0.9-3) unstable; urgency=medium
 
   * Urgency medium to try to beat the release.
only in patch2:
unchanged:
--- gnupg2-2.0.9.orig/agent/gpg-agent.c
+++ gnupg2-2.0.9/agent/gpg-agent.c
@@ -490,6 +490,8 @@
   int use_standard_socket = 0;
   gpg_error_t err;
   const char *env_file_name = NULL;
+  sigset_t initial_sigs;
+  
 
 
   set_strusage (my_strusage);
@@ -499,6 +501,8 @@
      somewhere after the option parsing */
   log_set_prefix ("gpg-agent", JNLIB_LOG_WITH_PREFIX|JNLIB_LOG_WITH_PID); 
 
+  sigprocmask(SIG_SETMASK, NULL, &initial_sigs);
+   
   /* Make sure that our subsystems are ready.  */
   init_common_subsystems ();
 
@@ -1004,6 +1008,14 @@
                   kill (pid, SIGTERM );
                   exit (1);
                 }
+              if (! pth_kill()) 
+               {
+                  log_error ("failed to clean up threading");
+                  kill (pid, SIGTERM );
+                  exit (1);
+               }
+             sigprocmask(SIG_SETMASK, &initial_sigs, NULL);
+
               execvp (argv[0], argv);
               log_error ("failed to run the command: %s\n", strerror (errno));
               kill (pid, SIGTERM);



-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to