Cygwin: make callers of open_setup check for failure
open_setup is called by dtable::init_std_file_from_handle and fhandler_base::open_with_arch. In both cases, failure of open_setup is now a fatal error. Currently this can only happen in the following situation: A Cygwin process is started by a non-Cygwin process, one of the standard IO handles is a pipe handle, and Cygwin is unable to create a required mutex (read_mtx or hdl_cnt_mtx).
This commit is contained in:
parent
6fc0aa8e5d
commit
be08c5c40b
|
@ -412,7 +412,8 @@ dtable::init_std_file_from_handle (int fd, HANDLE handle)
|
||||||
fhp->set_pipe_buf_size ();
|
fhp->set_pipe_buf_size ();
|
||||||
}
|
}
|
||||||
|
|
||||||
fh->open_setup (openflags);
|
if (!fh->open_setup (openflags))
|
||||||
|
api_fatal ("open_setup failed, %E");
|
||||||
fh->usecount = 0;
|
fh->usecount = 0;
|
||||||
cygheap->fdtab[fd] = fh;
|
cygheap->fdtab[fd] = fh;
|
||||||
cygheap->fdtab[fd]->inc_refcnt ();
|
cygheap->fdtab[fd]->inc_refcnt ();
|
||||||
|
|
|
@ -471,7 +471,8 @@ fhandler_base::open_with_arch (int flags, mode_t mode)
|
||||||
archetype_usecount (1);
|
archetype_usecount (1);
|
||||||
usecount = 0;
|
usecount = 0;
|
||||||
}
|
}
|
||||||
open_setup (flags);
|
if (!open_setup (flags))
|
||||||
|
api_fatal ("open_setup failed, %E");
|
||||||
}
|
}
|
||||||
|
|
||||||
close_on_exec (flags & O_CLOEXEC);
|
close_on_exec (flags & O_CLOEXEC);
|
||||||
|
|
Loading…
Reference in New Issue