• Magne Mahre's avatar
    Backport to 5.1 branch (next-mr revid: 2921) · f8152464
    Magne Mahre authored
    Bug#35589 SET PASSWORD caused a crash
    Bug#35591 FLUSH PRIVILEGES caused a crash
          
    A race condition on the privilege hash tables (proc_priv_hash
    and func_priv_hash) caused one thread to try to delete elements
    that had already been deleted by another thread.
          
    The bug was caused by reading and saving the pointers to 
    the hash tables outside mutex protection.  This led to an
    inconsistency where a thread copied a pointer to a hash,
    another thread did the same, the first thread then deleted
    the hash, and the second then crashed when it in turn tried to
    delete the deleted hash.
          
    The fix is to ensure that operations on the shared hash structures
    happens under mutex protection (moving the locking up a little)
    f8152464
sql_acl.cc 194 KB