From bb039e853df6c2754885c5cfb82dc3f7ea7d25b5 Mon Sep 17 00:00:00 2001
From: antirez <antirez@gmail.com>
Date: Sun, 13 Jun 2010 21:09:51 +0200
Subject: [PATCH] fixed a bug in rdbLoadObject abount specially encoded objects

---
 redis.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/redis.c b/redis.c
index 295bec049..4f5f68a7c 100644
--- a/redis.c
+++ b/redis.c
@@ -4250,8 +4250,10 @@ static robj *rdbLoadObject(int type, FILE *fp) {
             /* If we are using a zipmap and there are too big values
              * the object is converted to real hash table encoding. */
             if (o->encoding != REDIS_ENCODING_HT &&
-               (sdslen(key->ptr) > server.hash_max_zipmap_value ||
-                sdslen(val->ptr) > server.hash_max_zipmap_value))
+               ((key->encoding == REDIS_ENCODING_RAW &&
+                sdslen(key->ptr) > server.hash_max_zipmap_value) ||
+                (val->encoding == REDIS_ENCODING_RAW &&
+                sdslen(val->ptr) > server.hash_max_zipmap_value)))
             {
                     convertToRealHash(o);
             }