summaryrefslogtreecommitdiffstats
path: root/source/smbd/open.c
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>1999-01-25 23:28:38 +0000
committerJeremy Allison <jra@samba.org>1999-01-25 23:28:38 +0000
commitecec12214d7bc7cb46060120340e5fc9d9322210 (patch)
tree312ec60e72e0f1146df44349e9424fb3162819ad /source/smbd/open.c
parent8d3bf0f01a8c54d38ac984362377d9543f8e74e4 (diff)
downloadsamba-ecec12214d7bc7cb46060120340e5fc9d9322210.tar.gz
samba-ecec12214d7bc7cb46060120340e5fc9d9322210.tar.xz
samba-ecec12214d7bc7cb46060120340e5fc9d9322210.zip
Added HPUX signal fix for non-restarted waitpid syscall. Fix from Panu Outinen <Panu.Outinen@vertex.fi>
Jeremy.
Diffstat (limited to 'source/smbd/open.c')
-rw-r--r--source/smbd/open.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/source/smbd/open.c b/source/smbd/open.c
index e4819881d92..4edf3e8ecc9 100644
--- a/source/smbd/open.c
+++ b/source/smbd/open.c
@@ -225,8 +225,12 @@ static BOOL check_access_allowed_for_current_user( char *fname, int accmode )
*/
pid_t wpid;
int status_code;
- if ((wpid = sys_waitpid(child_pid, &status_code, 0)) < 0) {
- DEBUG(0,("check_access_allowed_for_current_user: The process is no longer waiting!\n"));
+
+ while ((wpid = sys_waitpid(child_pid, &status_code, 0)) < 0) {
+ if(errno == EINTR)
+ continue;
+ DEBUG(0,("check_access_allowed_for_current_user: The process \
+is no longer waiting ! Error = %s\n", strerror(errno) ));
CatchChild();
return(False);
}