From 22590fea7e0b5ff3f830782edbe04f3740dcfddc Mon Sep 17 00:00:00 2001 From: szaka Date: Wed, 3 Aug 2005 21:35:22 +0000 Subject: [PATCH] rl_expand(): check if new length isn't already more than requested --- ntfsprogs/ntfsresize.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/ntfsprogs/ntfsresize.c b/ntfsprogs/ntfsresize.c index 6c9c27e8..50841456 100644 --- a/ntfsprogs/ntfsresize.c +++ b/ntfsprogs/ntfsresize.c @@ -1809,7 +1809,11 @@ static void rl_expand(runlist **rl, const VCN last_vcn) len = rl_items(p); if (len <= 1) - err_exit("ntfs_rl_expand: bad runlist length: %d\n", len); + err_exit("rl_expand: bad runlist length: %d\n", len); + + if (p[len - 1].vcn > last_vcn) + err_exit("rl_expand: length is already more than requested " + "(%lld > %lld)\n", p[len - 1].vcn, last_vcn); if (p[len - 2].lcn == LCN_HOLE) { @@ -1820,7 +1824,7 @@ static void rl_expand(runlist **rl, const VCN last_vcn) p = realloc(*rl, ++len * sizeof(runlist_element)); if (!p) - perr_exit("ntfs_rl_expand: realloc"); + perr_exit("rl_expand: realloc"); p[len - 2].lcn = LCN_HOLE; p[len - 2].length = last_vcn - p[len - 2].vcn; @@ -1828,7 +1832,7 @@ static void rl_expand(runlist **rl, const VCN last_vcn) *rl = p; } else - err_exit("ntfs_rl_expand: bad LCN: %lld\n", p[len - 2].lcn); + err_exit("rl_expand: bad LCN: %lld\n", p[len - 2].lcn); } /**