diff options
-rw-r--r-- | libglusterfs/src/dict.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/libglusterfs/src/dict.c b/libglusterfs/src/dict.c index 1061a98577e..388f6f746b2 100644 --- a/libglusterfs/src/dict.c +++ b/libglusterfs/src/dict.c @@ -3093,7 +3093,8 @@ dict_unserialize (char *orig_buf, int32_t size, dict_t **fill) vallen = ntoh32 (hostord); buf += DICT_DATA_HDR_VAL_LEN; - if ((buf + keylen) > (orig_buf + size)) { + if ((keylen < 0) || (vallen < 0) || + (buf + keylen) > (orig_buf + size)) { gf_msg_callingfn ("dict", GF_LOG_ERROR, 0, LG_MSG_UNDERSIZED_BUF, "undersized buffer passed. " |