In ran into a problem with a game, Dark Age of Camelot, where it locked up
after logging into the game. After some tracing it became apparent that the
game was trying to read bytes from /dev/random, but due to me working
remotely on the computer, not enough entropy was generated which stalled the
game.
I was just wondering if it would be acceptable to specifically check for
/dev/random in wine_nt_to_unix_file_name() and turn that into /dev/urandom
?!
Small snippet of the login.dll executable code:
.text:0042C150 sub_42C150 proc near ; CODE XREF:
sub_4267E0+5B0C p
.text:0042C150
.text:0042C150 arg_0 = dword ptr 8
.text:0042C150 arg_4 = dword ptr 0Ch
.text:0042C150
.text:0042C150 push esi
.text:0042C151 push offset aRb ; "rb"
.text:0042C156 push offset aDevRandom ; "/dev/random"
.text:0042C15B call _fopen
.text:0042C160 mov esi, eax
.text:0042C162 add esp, 8
.text:0042C165 test esi, esi
.text:0042C167 jz short loc_42C185
.text:0042C169 push 0 ; size_t
.text:0042C16B push 4 ; int
.text:0042C16D push 0 ; char *
.text:0042C16F push esi ; FILE *
.text:0042C170 call _setvbuf
.text:0042C175 add esp, 10h
.text:0042C178 test eax, eax
.text:0042C17A jz short loc_42C189
.text:0042C17C push esi ; FILE *
.text:0042C17D call _fclose
.text:0042C182 add esp, 4
.text:0042C185
.text:0042C185 loc_42C185: ; CODE XREF:
sub_42C150+17 j
.text:0042C185 xor eax, eax
.text:0042C187 pop esi
.text:0042C188 retn