summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/geo.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/geo.c b/src/geo.c
index f47f4ee22..f7920a2e2 100644
--- a/src/geo.c
+++ b/src/geo.c
@@ -737,7 +737,15 @@ void geohashCommand(client *c) {
char buf[12];
int i;
for (i = 0; i < 11; i++) {
- int idx = (hash.bits >> (52-((i+1)*5))) & 0x1f;
+ int idx;
+ if (i == 10) {
+ /* We have just 52 bits, but the API used to output
+ * an 11 bytes geohash. For compatibility we assume
+ * zero. */
+ idx = 0;
+ } else {
+ idx = (hash.bits >> (52-((i+1)*5))) & 0x1f;
+ }
buf[i] = geoalphabet[idx];
}
buf[11] = '\0';