1. 10 Feb, 2016 2 commits
  2. 14 Dec, 2015 1 commit
  3. 03 Jun, 2015 2 commits
  4. 28 Apr, 2015 1 commit
    • antirez's avatar
      Fix Sentinel memory leak (hiredis bug) · 315e3b14
      antirez authored
      This fixes issue #2535, that was actually an hiredis library bug (I
      submitted an issue and fix to the redis/hiredis repo as well).
      
      When an asynchronous hiredis connection subscribes to a Pub/Sub channel
      and gets an error, and in other related conditions, the function
      redisProcessCallbacks() enters a code path where the link is
      disconnected, however the function returns before freeing the allocated
      reply object. This causes a memory leak. The memory leak was trivial to
      trigger in Redis Sentinel, which uses hiredis, every time we tried to
      subscribe to an instance that required a password, in case the Sentinel
      was configured either with the wrong password or without password at
      all. In this case, the -AUTH error caused the leaking code path to be
      executed.
      
      It was verified with Valgrind that after this change the leak no longer
      happens in Sentinel with a misconfigured authentication password.
      315e3b14
  5. 12 Dec, 2014 1 commit
  6. 05 Dec, 2014 1 commit
  7. 25 Nov, 2014 1 commit
  8. 14 Nov, 2014 6 commits
    • antirez's avatar
      lua_cjson.c Lua includes: angled -> quoted. · 4861457d
      antirez authored
      4861457d
    • Matt Stancliff's avatar
      Lua: upgrade cmsgpack to 0.4.0 · 8c3bcbfc
      Matt Stancliff authored
      Main reasons for upgrade:
        - Remove a warning when building Redis
        - Add multi pack/unpack
        - Improve memory usage and use Lua allocator properly
        - Fix some edge case encoding/decoding bugs
      8c3bcbfc
    • Matt Stancliff's avatar
      Lua: remove new warning added by cjson header · aa1a0d6f
      Matt Stancliff authored
      clang doesn't like "extern inline" when no definition
      is given right away.
      aa1a0d6f
    • Matt Stancliff's avatar
      Lua: Use Redis solaris compatability for cjson too · 546db94c
      Matt Stancliff authored
      cjson calls isinf, but some Solaris versions don't have isinf
      even with the attempted fix we have in deps/Makefile.
      
      We can harmlessly include the Redis solarisfixes.h header to
      give cjson proper isinf.
      
      Note: cjson has a compile-time setting for using their own defined
      isinf, but the Redis definition in solarisfixes.h is more complete.
      
      Fixes antirez#1620
      546db94c
    • Matt Stancliff's avatar
      Lua: Upgrade cjson to 2.1.0 (2012-03-01) · 03ca2231
      Matt Stancliff authored
      The new cjson has some improvements over our current version including
      increased platform compatability, a new resource limit to restrict
      decode depth, and better invalid number handling.
      
      One minor change was required to deps/Makefile because this version
      of cjson doesn't export itself globally, so we added a quick little
      define of -DENABLE_CJSON_GLOBAL.
      
      cjson now has an optional higher performing float parsing interface,
      but we are not including it (g_fmt.c, dtoa.c) because it requires
      endianness declaration during compile time.
      
      This commit is exactly lua_cjson.c from 2.1.0 with one minor
      change of altering the two Lua includes for local search
      instead of system-wide importing.
      03ca2231
    • Matt Stancliff's avatar
      Lua: Add bitop · d071e5fe
      Matt Stancliff authored
      A few people have written custom C commands because bit
      manipulation isn't exposed through Lua.  Let's give
      them Mike Pall's bitop.
      
      This adds bitop 1.0.2 (2012-05-08) from http://bitop.luajit.org/
      
      bitop is imported as "bit" into the global namespace.
      
      New Lua commands: bit.tobit, bit.tohex, bit.bnot, bit.band, bit.bor, bit.bxor,
      bit.lshift, bit.rshift, bit.arshift, bit.rol, bit.ror, bit.bswap
      
      Verification of working (the asserts would abort on error, so (nil) is correct):
      127.0.0.1:6379> eval "assert(bit.tobit(1) == 1); assert(bit.band(1) == 1); assert(bit.bxor(1,2) == 3); assert(bit.bor(1,2,4,8,16,32,64,128) == 255)" 0
      (nil)
      127.0.0.1:6379> eval 'assert(0x7fffffff == 2147483647, "broken hex literals"); assert(0xffffffff == -1 or 0xffffffff == 2^32-1, "broken hex literals"); assert(tostring(-1) == "-1", "broken tostring()"); assert(tostring(0xffffffff) == "-1" or tostring(0xffffffff) == "4294967295", "broken tostring()")' 0
      (nil)
      
      Tests also integrated into the scripting tests and can be run with:
      ./runtest --single unit/scripting
      
      Tests are excerpted from `bittest.lua` included in the bitop distribution.
      d071e5fe
  9. 06 Oct, 2014 3 commits
  10. 22 Sep, 2014 1 commit
  11. 19 Sep, 2014 1 commit
  12. 26 Aug, 2014 5 commits
  13. 23 Jun, 2014 4 commits
  14. 21 Jun, 2014 2 commits
  15. 13 Mar, 2014 1 commit
  16. 27 Aug, 2013 1 commit
  17. 12 Aug, 2013 1 commit
  18. 25 Jul, 2013 1 commit
  19. 11 Jul, 2013 1 commit
  20. 29 Apr, 2013 1 commit
  21. 18 Apr, 2013 1 commit
    • antirez's avatar
      Redis/Jemalloc Gitignore were too aggressive. · d04afd62
      antirez authored
      Redis gitignore was too aggressive since simply broken.
      
      Jemalloc gitignore was too agressive because it is conceived to just
      keep the files that allow to generate all the rest in development
      environments (so for instance the "configure" file is excluded).
      d04afd62
  22. 16 Mar, 2013 2 commits