diff options
author | Russell Bryant <russell@russellbryant.com> | 2006-10-27 17:42:57 +0000 |
---|---|---|
committer | Russell Bryant <russell@russellbryant.com> | 2006-10-27 17:42:57 +0000 |
commit | 4337a82563ad380ca67b96dc712d7a2f1ab94e73 (patch) | |
tree | f426c165121ed5212c0627bb7e3329f542247360 /apps/app_externalivr.c | |
parent | 4a523b1b2d58a1b528790fc8898ce8aec82cc7bb (diff) |
Merged revisions 46363 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r46363 | russell | 2006-10-27 12:39:31 -0500 (Fri, 27 Oct 2006) | 5 lines
We should always be using _exit() after a fork() or vfork() instead of exit().
This is because exit() does some extra cleanup which in some implementations
of vfork(), for example, can actually modify the state of the parent process,
causing very weird bugs or crashes. (issue #7971, Nick Gavrikov)
........
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@46364 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'apps/app_externalivr.c')
-rw-r--r-- | apps/app_externalivr.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/apps/app_externalivr.c b/apps/app_externalivr.c index 5d2ba1f65..f9b890588 100644 --- a/apps/app_externalivr.c +++ b/apps/app_externalivr.c @@ -323,7 +323,7 @@ static int app_exec(struct ast_channel *chan, void *data) close(i); execv(argv[0], argv); fprintf(stderr, "Failed to execute '%s': %s\n", argv[0], strerror(errno)); - exit(1); + _exit(1); } else { /* parent process */ int child_events_fd = child_stdin[1]; |