Update incorrect ddt_zap_lookup() assertion
authorBrian Behlendorf <behlendorf1@llnl.gov>
Tue, 3 Jul 2012 21:47:57 +0000 (14:47 -0700)
committerBrian Behlendorf <behlendorf1@llnl.gov>
Tue, 3 Jul 2012 22:14:34 +0000 (15:14 -0700)
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 <behlendorf1@llnl.gov>
Signed-off-by: Prakash Surya <surya1@llnl.gov>
module/zfs/ddt_zap.c

index 280bff3..6fb6ea2 100644 (file)
@@ -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);