From 42d3b990cfba9906e25bbf6b60e96389244f8082 Mon Sep 17 00:00:00 2001 From: Brian Behlendorf Date: Tue, 3 Jul 2012 14:47:57 -0700 Subject: [PATCH] Update incorrect ddt_zap_lookup() assertion When the ddt_zap_lookup() function was updated to dynamically allocate memory for the cbuf variable, to save stack space, the 'csize <= sizeof (cbuf)' assertion was not updated. The result of this was that the size of the pointer was being used in the comparison rather than the buffer size. Signed-off-by: Brian Behlendorf Signed-off-by: Prakash Surya --- module/zfs/ddt_zap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/module/zfs/ddt_zap.c b/module/zfs/ddt_zap.c index 280bff35a0b8..6fb6ea2a3a92 100644 --- a/module/zfs/ddt_zap.c +++ b/module/zfs/ddt_zap.c @@ -70,7 +70,7 @@ ddt_zap_lookup(objset_t *os, uint64_t object, ddt_entry_t *dde) goto out; ASSERT(one == 1); - ASSERT(csize <= sizeof (cbuf)); + ASSERT(csize <= (sizeof (dde->dde_phys) + 1)); error = zap_lookup_uint64(os, object, (uint64_t *)&dde->dde_key, DDT_KEY_WORDS, 1, csize, cbuf);