delorie.com/archives/browse.cgi | search |
On Sun, Apr 02, 2000 at 03:58:57PM -0500, Mumit Khan wrote: >On Wed, 15 Mar 2000, Chris Faylor wrote: >> This sounds correct to me. Passing what is essentially a bogus argument >> for the buffer length is just wrong. At the very least, it's subject to >> problems if the file size changes while you're reading it. Admittedly >> this is an unusual occurrence but why not program for something like this >> and fail gracefully rather than core dumping? >> > >fyi, the makeinfo bug is caused by a (undocumented of course) bug in Win32 >ReadFile routine. > >Here's what David Korn says when it showed up in UWIN as well: > >Yet some more bizarre undocumented win32 behavior. If you call the >Win32 ReadFile() function with size greater than 32K, and you are at >the end of file, it does not return successfully with 0 bytes as you >would expect, but fails with ERROR_NOACCESS. > >This should be fixed in the runtime, but I have to find a reliable way >to detect this (since we have to differentiate between this buggy >behaviour and other legitimate causes of ERROR_NOACCESS). Are we sure that this is a correct analysis? The previous analysis was that ReadFile was being passed a length which was larger than its supplied buffer. That is (to me) inarguably wrong. You can't say "I know how big the file is" because you can *never* know how big the file is in a multi-tasking operating system. It seems like Dave Bryan went to some effort to track this down and I don't see that his analysis is incorrect. cgf
webmaster | delorie software privacy |
Copyright © 2019 by DJ Delorie | Updated Jul 2019 |