http://bugs.winehq.org/show_bug.cgi?id=35983 Dmitry Timoshkov <dmitry(a)baikal.ru> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords|regression | Status|UNCONFIRMED |NEW Component|kernel32 |-unknown Summary|Regression - mz800 emulator |mz800 emulator hangs on |does not show the boot |start |loader | Ever confirmed|0 |1 Regression SHA1|b4ab43b3de134d2816393ba7f23 | |f67bfc36bd33f | --- Comment #1 from Dmitry Timoshkov <dmitry(a)baikal.ru> --- This looks like an application bug. The app does something like this: hinput = GetStdHandle(STD_INPUT_HANDLE); in_size = GetFileSize(hinput); if (insize > 127) in_size -= 127; ReadFile(hinput, some_buf, in_size, &bytes_read, NULL); // <- hangs under Wine First problem is that GetFileSize(hinput) returns 0 under Wine, but INVALID_FILE_SIZE under Windows with last error set to ERROR_INVALID_HANDLE. ReadFile(hinput, some_buf, 0, &bytes_read, NULL) waits forever for console input under both Windows and Wine, but number_of_bytes_to_read passed to ReadFile is 0 under Wine because of GetFileSize() bug => hang (wait for input). Once GetFileSize() in Wine is fixed to return INVALID_FILE_SIZE for a console handle, ReadConsoleA() attempts to allocate huge amount of memory (-128 => 0xffffff80 bytes) which fails, but ReadConsoleA() doesn't check this and forwards NULL to ReadConsoleW(), which in turn (correctly) waits for input. Once I add a check to ReadConsoleA() for memory allocation error and return FALSE with appropriate last error set the app starts to work. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.