• Vladislav Vaintroub's avatar
    Bug#43932 myisam index corruption with large index and large · 57b4295d
    Vladislav Vaintroub authored
    key_buffer_size.
    
    The cause of corruption was number overflow when multiplying 
    two ulong values, number of used keycache blocks with size
    of a single block. The result of multiplication exceeded ulong 
    range (4G) and this lead to incorrectly calculated  buffer offset
    in the key cache.
    
    The fix is to use size_t for multiplication result.
    
    This patch also fixes pointless cast in safemalloc 
    (size of allocated block to uint), that creates lot of false
    alarm warnings when using big keycache (> 4GB) in debug mode.
    57b4295d
safemalloc.c 16.5 KB