diff options
author | Guy Benoish <guy.benoish@redislabs.com> | 2019-11-05 19:23:37 +0530 |
---|---|---|
committer | Guy Benoish <guy.benoish@redislabs.com> | 2019-11-05 19:23:37 +0530 |
commit | 8beec4f0e78cebce9cd14d72fa4a622538b7c045 (patch) | |
tree | 716e1f705293bc833d0e45082d9082940a533d61 | |
parent | a15a5d70976cc185389b0d515265b443e5a3a0f3 (diff) | |
download | redis-8beec4f0e78cebce9cd14d72fa4a622538b7c045.tar.gz |
Make sure Redis does not reply with negative zero
-rw-r--r-- | src/util.c | 4 | ||||
-rw-r--r-- | tests/unit/type/incr.tcl | 6 |
2 files changed, 10 insertions, 0 deletions
diff --git a/src/util.c b/src/util.c index 062a572d4..80b5a2453 100644 --- a/src/util.c +++ b/src/util.c @@ -560,6 +560,10 @@ int ld2string(char *buf, size_t len, long double value, ld2string_mode mode) { } if (*p == '.') l--; } + if (l == 2 && buf[0] == '-' && buf[1] == '0') { + buf[0] = '0'; + l = 1; + } break; default: return 0; /* Invalid mode. */ } diff --git a/tests/unit/type/incr.tcl b/tests/unit/type/incr.tcl index a58710d39..63bf2e116 100644 --- a/tests/unit/type/incr.tcl +++ b/tests/unit/type/incr.tcl @@ -151,4 +151,10 @@ start_server {tags {"incr"}} { catch {r incrbyfloat foo 1} err format $err } {ERR*valid*} + + test {No negative zero} { + r incrbyfloat foo [expr double(1)/41] + r incrbyfloat foo [expr double(-1)/41] + r get foo + } {0} } |