diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index 1fd037412..aae0ea9e0 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,3 +1,9 @@ +2013-05-28 Corinna Vinschen + + * fhandler_procsys.cc (fhandler_procsys::read): Just call + fhandler_base::raw_read from here. Drop comment. + (fhandler_procsys::write): Drop comment. + 2013-05-27 Corinna Vinschen * dll_init.cc (dll_list::topsort): Fix early-return condition to diff --git a/winsup/cygwin/fhandler_procsys.cc b/winsup/cygwin/fhandler_procsys.cc index 6bd52da27..759712f04 100644 --- a/winsup/cygwin/fhandler_procsys.cc +++ b/winsup/cygwin/fhandler_procsys.cc @@ -394,26 +394,12 @@ fhandler_procsys::closedir (DIR *dir) void __reg3 fhandler_procsys::read (void *ptr, size_t& len) { - NTSTATUS status; - IO_STATUS_BLOCK io; - LARGE_INTEGER off = { QuadPart:0LL }; - - /* FIXME: Implement nonblocking I/O, interruptibility and cancelability. */ - status = NtReadFile (get_handle (), NULL, NULL, NULL, &io, ptr, len, - &off, NULL); - if (!NT_SUCCESS (status)) - { - __seterrno_from_nt_status (status); - len = -1; - } - else - len = io.Information; + fhandler_base::raw_read (ptr, len); } ssize_t __stdcall fhandler_procsys::write (const void *ptr, size_t len) { - /* FIXME: Implement nonblocking I/O, interruptibility and cancelability. */ return fhandler_base::raw_write (ptr, len); } diff --git a/winsup/cygwin/release/1.7.19 b/winsup/cygwin/release/1.7.19 index 6b6c883be..30495e9c6 100644 --- a/winsup/cygwin/release/1.7.19 +++ b/winsup/cygwin/release/1.7.19 @@ -31,3 +31,6 @@ Bug fixes: - Fix an incorrect condition which breaks fork after all dlopen'ed DLLs have already been dlclose'd. Fixes: http://cygwin.com/ml/cygwin/2013-05/msg00376.html + +- Fix buggy usage of NtReadFile when reading from device under /proc/sys. + Fixes: http://cygwin.com/ml/cygwin/2013-05/msg00392.html