• Guy Benoish's avatar
    Fix memory corruption in moduleHandleBlockedClients · 193fc241
    Guy Benoish authored
    By using a "circular BRPOPLPUSH"-like scenario it was
    possible the get the same client on db->blocking_keys
    twice (See comment in moduleTryServeClientBlockedOnKey)
    
    The fix was actually already implememnted in
    moduleTryServeClientBlockedOnKey but it had a bug:
    the funxction should return 0 or 1 (not OK or ERR)
    
    Other changes:
    1. Added two commands to blockonkeys.c test module (To
       reproduce the case described above)
    2. Simplify blockonkeys.c in order to make testing easier
    3. cast raxSize() to avoid warning with format spec
    193fc241
module.c 311 KB