diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index 385115af4..26291f0d8 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,3 +1,10 @@ +2009-12-22 Christopher Faylor + + * select.cc (fhandler_fifo::select_read): Fill in device specific + record. + (fhandler_fifo::select_write): Ditto. + (fhandler_fifo::select_except): Ditto. + 2009-12-21 Corinna Vinschen * path.cc (cygwin_conv_path): Add band-aid including comment to avoid diff --git a/winsup/cygwin/select.cc b/winsup/cygwin/select.cc index 1cd18e720..64c3cdecd 100644 --- a/winsup/cygwin/select.cc +++ b/winsup/cygwin/select.cc @@ -742,6 +742,9 @@ fhandler_pipe::select_except (select_stuff *ss) select_record * fhandler_fifo::select_read (select_stuff *ss) { + if (!ss->device_specific_pipe + && (ss->device_specific_pipe = new select_pipe_info) == NULL) + return NULL; select_record *s = ss->start.next; s->startup = start_thread_pipe; s->peek = peek_pipe; @@ -755,6 +758,9 @@ fhandler_fifo::select_read (select_stuff *ss) select_record * fhandler_fifo::select_write (select_stuff *ss) { + if (!ss->device_specific_pipe + && (ss->device_specific_pipe = new select_pipe_info) == NULL) + return NULL; select_record *s = ss->start.next; s->startup = start_thread_pipe; s->peek = peek_pipe; @@ -768,6 +774,9 @@ fhandler_fifo::select_write (select_stuff *ss) select_record * fhandler_fifo::select_except (select_stuff *ss) { + if (!ss->device_specific_pipe + && (ss->device_specific_pipe = new select_pipe_info) == NULL) + return NULL; select_record *s = ss->start.next; s->startup = start_thread_pipe; s->peek = peek_pipe;