From c5523657bf21d5c12a40bcc56fa924be10c38fa0 Mon Sep 17 00:00:00 2001 From: Anton Altaparmakov Date: Fri, 24 Feb 2012 09:37:42 +0000 Subject: [PATCH] --- yaml --- r: 288027 b: refs/heads/master c: 97387e3baaf3c35ad560f8878e943c720a77da1b h: refs/heads/master i: 288025: a79086614bf1e30f7de7ae8818ca61048a82abc5 288023: aba93c6440edf553bf418f2e1d9d6d4f00c312ba v: v3 --- [refs] | 2 +- trunk/block/partitions/ldm.c | 11 ++++------- 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/[refs] b/[refs] index 0c586b286997..791d7587b4f9 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 9b556248ecb059095e000f77c4b84899feb50098 +refs/heads/master: 97387e3baaf3c35ad560f8878e943c720a77da1b diff --git a/trunk/block/partitions/ldm.c b/trunk/block/partitions/ldm.c index bd8ae788f689..e507cfbd044e 100644 --- a/trunk/block/partitions/ldm.c +++ b/trunk/block/partitions/ldm.c @@ -2,7 +2,7 @@ * ldm - Support for Windows Logical Disk Manager (Dynamic Disks) * * Copyright (C) 2001,2002 Richard Russon - * Copyright (c) 2001-2007 Anton Altaparmakov + * Copyright (c) 2001-2012 Anton Altaparmakov * Copyright (C) 2001,2002 Jakob Kemi * * Documentation is available at http://www.linux-ntfs.org/doku.php?id=downloads @@ -1341,20 +1341,17 @@ static bool ldm_frag_add (const u8 *data, int size, struct list_head *frags) ldm_error("REC value (%d) exceeds NUM value (%d)", rec, f->num); return false; } - if (f->map & (1 << rec)) { ldm_error ("Duplicate VBLK, part %d.", rec); f->map &= 0x7F; /* Mark the group as broken */ return false; } - f->map |= (1 << rec); - + if (!rec) + memcpy(f->data, data, VBLK_SIZE_HEAD); data += VBLK_SIZE_HEAD; size -= VBLK_SIZE_HEAD; - - memcpy (f->data+rec*(size-VBLK_SIZE_HEAD)+VBLK_SIZE_HEAD, data, size); - + memcpy(f->data + VBLK_SIZE_HEAD + rec * size, data, size); return true; }