[PATCH v3 1/6] libport: Don't call exit in the shared library.

Sebastian Lackner sebastian at fds-team.de
Fri Oct 7 12:04:15 CDT 2016


On 07.10.2016 18:39, Jens Reyer wrote:
> From: Michael Gilbert <mgilbert at debian.org>
> Signed-off-by: Jens Reyer <jre.winesim at gmail.com>
> ---
>  libs/port/spawn.c | 8 ++++----
>  1 file changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/libs/port/spawn.c b/libs/port/spawn.c
> index 97364e7..c1a95a2 100644
> --- a/libs/port/spawn.c
> +++ b/libs/port/spawn.c
> @@ -55,20 +55,20 @@ int _spawnvp(int mode, const char *cmdname, const char *const argv[])
>          if (mode == _P_DETACH)
>          {
>              pid = fork();
> -            if (pid == -1) _exit(1);
> -            else if (pid > 0) _exit(0);
> +            if (pid == -1) abort();
> +            else if (pid > 0) return pid;

The _exit() calls are happening from a child process here, so there is nothing
to change. In fact, returning to the caller even breaks the code.

Regards,
Sebastian

>              /* else in grandchild */
>          }
>  
>          signal( SIGPIPE, SIG_DFL );
>          execvp(cmdname, (char **)argv);
> -        _exit(1);
> +        abort();
>      }
>  
>      if (pid == -1)
>          return -1;
>  
> -    if (mode == _P_OVERLAY) exit(0);
> +    if (mode == _P_OVERLAY) abort();
>  
>      if (mode == _P_WAIT || mode == _P_DETACH)
>      {
> 




More information about the wine-devel mailing list