Re: [PATCH v3 10/10] run-command: block signals between fork and execve

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Brandon Williams <bmwill@xxxxxxxxxx> wrote:
> On 04/14, Brandon Williams wrote:
> >  		/*
> > +		 * restore default signal handlers here, in case
> > +		 * we catch a signal right before execve below
> > +		 */
> > +		for (sig = 1; sig < NSIG; sig++) {
> > +			sighandler_t old = signal(sig, SIG_DFL);
> 
> So sighandler_t doesn't work on macOS.  Is there a more portable lib
> that needs to be included for this to work?

Oops, maybe this works (only tested on GNU/Linux):

--- a/run-command.c
+++ b/run-command.c
@@ -675,7 +675,7 @@ int start_command(struct child_process *cmd)
 		 * we catch a signal right before execve below
 		 */
 		for (sig = 1; sig < NSIG; sig++) {
-			sighandler_t old = signal(sig, SIG_DFL);
+			void (*old)(int) = signal(sig, SIG_DFL);
 
 			/* ignored signals get reset to SIG_DFL on execve */
 			if (old == SIG_IGN)

Otherwise, maybe just casting to 'void *' is OK:

			void *old = (void *)signal(sig, SIG_DFL);

			if (old == (void *)SIG_IGN)
				...



void *old = signal(sig, SIG_DFL);



[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]