• Vladislav Vaintroub's avatar
    Bug#55629 5.5.x goes into infinite loop and high cpu after · ae002904
    Vladislav Vaintroub authored
    error flushing io cache 
    
    The reason for the error was incorrect return code from
    my_win_write() in case of error on 64 bit Windows.
    
    Error should be  indicated by return code 
    (size_t)-1 == 2^64 -1, but due to cast it was
    (DWORD)-1 = 2^32 -1
    
    The caller of this function would fail to recognize the error
    and continue looping.
    
    Fix is to return correct error code (size_t)-1 in case of error
    as expected by caller.
    
    Also minimal cleanup is done : my_win_write() now uses
    the same parameter checks  as related functions (0 and
    overflow handling for count parameter).
    ae002904
my_winfile.c 16.8 KB