From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 10881 invoked by alias); 2 Apr 2009 15:02:22 -0000 Received: (qmail 10570 invoked by uid 9664); 2 Apr 2009 15:02:19 -0000 Date: Thu, 02 Apr 2009 15:02:00 -0000 Message-ID: <20090402150219.10568.qmail@sourceware.org> From: mbroz@sourceware.org To: lvm-devel@redhat.com, lvm2-cvs@sourceware.org Subject: LVM2/libdm/mm pool-debug.c Mailing-List: contact lvm2-cvs-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Post: List-Help: , Sender: lvm2-cvs-owner@sourceware.org X-SW-Source: 2009-04/txt/msg00003.txt.bz2 CVSROOT: /cvs/lvm2 Module name: LVM2 Changes by: mbroz@sourceware.org 2009-04-02 15:02:19 Modified files: libdm/mm : pool-debug.c Log message: Fix debug pool grow object to properly support delta=0 (It prints garbage for some reports) Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/libdm/mm/pool-debug.c.diff?cvsroot=lvm2&r1=1.6&r2=1.7 --- LVM2/libdm/mm/pool-debug.c 2009/03/26 09:25:18 1.6 +++ LVM2/libdm/mm/pool-debug.c 2009/04/02 15:02:18 1.7 @@ -218,14 +218,19 @@ int dm_pool_grow_object(struct dm_pool *p, const void *extra, size_t delta) { struct block *new; - size_t size = delta ? : strlen(extra); + size_t new_size; + + if (!delta) + delta = strlen(extra); assert(p->begun); if (p->object) - size += p->object->size; + new_size = delta + p->object->size; + else + new_size = delta; - if (!(new = _new_block(size, DEFAULT_ALIGNMENT))) { + if (!(new = _new_block(new_size, DEFAULT_ALIGNMENT))) { log_err("Couldn't extend object."); return 0; } @@ -237,7 +242,7 @@ } p->object = new; - memcpy(new->data + size - delta, extra, delta); + memcpy(new->data + new_size - delta, extra, delta); return 1; }