markus.amsler@oribi.org writes:
The installation routine of the ida dos disassembler (gg: ida37fw.zip), wonn't work, because winedos/int21:0x3b CHDIR returns ERROR_FILE_NOT_FOUND. If I return ERROR_PATH_NOT_FOUND it will install. ntdll:RtlSetCurrentDirectory returns STATUS_OBJECT_NAME_NOT_FOUND, which gets mapped to ERROR_FILE_NOT_FOUND (ntdll/error.c#L403).
How to achieve the right behavior?
- Check for FILE_NOT_FOUND in winedos/int21.c: INT21_SetCurrentdirectory
- Check for FILE_NOT_FOUND in kernel/path.c: SetCurrentDirectoryW/A
- map STATUS_OBJECT_NAME_NOT_FOUND to ERROR_PATH_NOT_FOUND
The bug is in int21.c. I committed a fix.