GNU bug report logs - #31218
kill() not wrapped with HAVE_WORKING_FORK

Previous Next

Package: diffutils;

Reported by: "Burton, Ross" <ross.burton <at> intel.com>

Date: Thu, 19 Apr 2018 15:11:02 UTC

Severity: normal

Done: Paul Eggert <eggert <at> cs.ucla.edu>

Bug is archived. No further changes may be made.

Full log


Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: "Burton, Ross" <ross.burton <at> intel.com>
To: bug-diffutils <at> gnu.org
Subject: kill() not wrapped with HAVE_WORKING_FORK
Date: Thu, 19 Apr 2018 10:59:44 +0100
Hi,

In sdiff.c the use of kill() is guarded in cleanup():

static void
cleanup (int signo __attribute__((unused)))
{
#if HAVE_WORKING_FORK
  if (0 < diffpid)
    kill (diffpid, SIGPIPE);
#endif
  if (tmpname)
    unlink (tmpname);
}

However, in checksigs() it isn't.  A simple fix to help build
diffutils under mingw (which doesn't have kill()) is:

+--- a/src/sdiff.c
++++ b/src/sdiff.c
+@@ -805,7 +805,9 @@
+
+       /* Yield an exit status indicating that a signal was received.  */
+       untrapsig (s);
++#if HAVE_WORKING_FORK
+       kill (getpid (), s);
++#endif
+
+       /* That didn't work, so exit with error status.  */
+       exit (EXIT_TROUBLE);

Cheers,
Ross




This bug report was last modified 7 years and 96 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.