summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2021-11-18Remove unused parameter warning in libev adapterBjörn Svensson
A warning in `redisLibevTimeout(..)` is triggered when building the libev adapter with Clang using -Wextra/-Wunused-parameter. Works fine with gcc..
2021-11-17Small tweaks of the async testsmichael-grunder
2021-10-27Add asynchronous test for pubsub using RESP2Björn Svensson
The testcase will subscribe to a channel, and via a second client a message is published to the channel. After receiving the message the testcase will unsubscribe and disconnect.
2021-10-26Add build options for enabling async testsBjörn Svensson
Asynchronous testcases that requires the event library `libevent` can be built and enabled by using the added build flags: - ENABLE_ASYNC_TESTS when using CMake - TEST_ASYNC when using Make The async tests are disabled by default to avoid adding new requirements, but the testcases are built and run in CI.
2021-10-21Correcting the build target `coverage` for enabled SSL (#1009)Bjorn Svensson
* Exclude includes from /usr in coverage reporting * Correct build target `coverage` for enabled ssl `USE_SSL=1 make coverage` will now build the test binary with the forwarded define HIREDIS_TEST_SSL. This avoids inconsistency between built test binary and the testrunner `test.sh`. This enables test coverage measurements for SSL too.
2021-10-20Run SSL tests in CIBjörn Svensson
2021-10-14Add valgrind and CMake to testsmichael-grunder
2021-10-12Add Centos8michael-grunder
I'm sure this can be done with a container matrix but figuring that out is left for another day.
2021-10-12We should run actions on PRsmichael-grunder
2021-10-12Add Cygwin build testmichael-grunder
2021-10-10Add Windows tests in GitHub actionsmichael-grunder
See: #992 TODO: MinGW/cygwin tests
2021-10-10Switch to GitHub actionsmichael-grunder
Since TravisCI.org was deprecated we've been without any tests. This commit adds back basic tests in Ubuntu, CentOS, and MacOS. More sophisticated tests/platforms to come in the future (e.g. 32bit tests). See: #992
2021-10-10Fix unused variable warning.michael-grunder
2021-10-10Minor refactor of CVE-2021-32765 fix.michael-grunder
Since `hi_calloc` always passes through one of our wrapper functions, we can perform this overflow in the wrapper, and get protection everywhere. Previous commit: 76a7b10005c70babee357a7d0f2becf28ec7ed1e Related vuln ID: CVE-2021-32765 [Full Details](https://github.com/redis/hiredis/security/advisories/GHSA-hfm9-39pp-55p2)
2021-10-09Remove extra comma from cmake var.Tongliang Liao
Or it'll be treated as part of the var name.
2021-10-07Merge branch 'release/v1.0.2'michael-grunder
2021-10-07Prepare for v1.0.2 GAmichael-grunder
2021-10-07Revert erroneous SONAME bumpmichael-grunder
2021-10-04Merge branch 'release/v1.0.1'michael-grunder
Merge the v1.0.1 release branch and bump the dev version to 1.0.2-dev
2021-10-04 Prepare for v1.0.1 GAmichael-grunder
2021-10-04Fix for integer/buffer overflow CVE-2021-32765Yossi Gottlieb
This fix prevents hiredis from trying to allocate more than `SIZE_MAX` bytes, which would result in a buffer overrun. [Full Details](https://github.com/redis/hiredis/security/advisories/GHSA-hfm9-39pp-55p2)
2021-10-03Allow to override OPENSSL_PREFIX in LinuxYunier Perez
2021-08-18Don't leak memory if an invalid type is set (#906)rouzier
Co-authored-by: James Rouzier <jrouzier@inverse.ca>
2021-07-11Added REDIS_NO_AUTO_FREE_REPLIES flag (#962)Meir Shpilraien (Spielrein)
When set hiredis will not automatically free replies in an async context, and the replies must be freed instead by the user. Co-authored-by: Michael Grunder <michael.grunder@gmail.com>
2021-06-17Ensure we curry any connect error to an async context.michael-grunder
2021-05-23Fix README.mdmichael-grunder
Closes #929
2021-05-02Merge pull request #935 from kristjanvalur/pr5Michael Grunder
Bugfix: Ignore timeout callback from a successful connect (fixes #945)
2021-05-02Merge pull request #939 from zmartzone/improve_pr_896_ssl_leakMichael Grunder
improve SSL leak fix redis/hiredis#896
2021-05-02Merge pull request #949 from plan-do-break-fix/Typo-correctionsMichael Grunder
fix(docs): corrects typos in project README
2021-04-24fix(docs): corrects typos in project READMEplan-do-break-fix
2021-04-11improve SSL leak fix redis/hiredis#896Hans Zandbelt
Free SSL object when redisSSLConnect fails but avoid doing that for callers of redisInitiateSSL who are supposed to manager their own SSL object. Signed-off-by: Hans Zandbelt <hans.zandbelt@zmartzone.eu>
2021-04-08Ignore timeout callback from a successful connectKristján Valur Jónsson
2021-04-02Change order independant push logic to not change behavior.michael-grunder
Since redisGetReplyFromReader is exposed in a header file, we probably shouldn't modify how it behaves in any way. For this reason, handle the changed logic in an internal static helper method.
2021-04-02Handle the case where an invalidation is sent second.michael-grunder
RESP3 invalidation messages always seemed to be sent before the response to a given command, but it appears this is not always the case: In Redis 6.2.0RC1 Redis sends the invalidation after the HSET in the following sequence: ``` hget hash field $5 value hset hash field value :0 >2 $10 invalidate *1 $4 hash ``` To account for this possibility just wrap redisGetReplyFromReader in a loop as it is called twice in redisGetReply.
2021-02-25Merge branch 'reader-updates'michael-grunder
Updates and improvements to the RESP3 protocol reader. * Fix the unset len field when creating RESP3 double objects * Fix RESP3 double infinity parsing * Add additional validations when parsing various reply types * Fix the parent type assertions in certain default reply object creation callbacks (mostly to include PUSH as a parent). * Additional reader test cases * Implement RESP3 BIGNUM support * Refactor seekNewline() to use memchr()
2021-02-25Fix off-by-one error in seekNewlinemichael-grunder
2021-02-25read: Validate line items prior to checking for object creation callbacksAlex Smith
2021-02-25read: Remove obsolete comment on nested multi bulk depth limitationAlex Smith
2021-02-25read: Add support for the RESP3 bignum typeAlex Smith
2021-02-25read: Ensure no invalid '\r' or '\n' in simple status/error stringsAlex Smith
2021-02-25read: Additional validation and test case for RESP3 doubleAlex Smith
This ensures that malformed RESP3 double messages that include an invalid null byte are not parsed as valid.
2021-02-25redisReply: Fix parent type assertions during double, nil, bool creationAlex Smith
Per RESP3, push messages are able to contain exactly what array messages can contain (that is, any other type).
2021-02-25redisReply: Explicitly list nil and bool cases in freeReplyObject() switch.Alex Smith
2021-02-25test: Add test case for RESP3 setAlex Smith
2021-02-25test: Add test case for RESP3 mapAlex Smith
2021-02-25read: Use memchr() in seekNewline() instead of looping over entire stringAlex Smith
2021-02-25test: Add test cases for RESP3 boolAlex Smith
2021-02-25read: Add additional RESP3 bool validationAlex Smith
RESP3 bools should be only one of "#t\r\n" or "#f\r\n". We also allow capital 'T' and 'F' to be lenient.
2021-02-25test: Add test cases for RESP3 nilAlex Smith
2021-02-25read: Add additional RESP3 nil validationAlex Smith
RESP3 nil should consist of "_\r\n" and nothing else.