From: Robert Spalek Date: Tue, 25 Apr 2006 21:39:03 +0000 (+0200) Subject: conf2: dynamic arrays allow negative maximal length X-Git-Tag: holmes-import~645^2~11^2~39^2~1 X-Git-Url: http://mj.ucw.cz/gitweb/?a=commitdiff_plain;h=5e51a4018ee3c525bb13ad2221c3f558a8b695e5;p=libucw.git conf2: dynamic arrays allow negative maximal length --- diff --git a/lib/conf2.c b/lib/conf2.c index 6da13950..dea5e111 100644 --- a/lib/conf2.c +++ b/lib/conf2.c @@ -689,7 +689,7 @@ interpret_add_dynamic(struct cf_item *item, int number, byte **pars, int *proces uns size = type_size(item->type, item->u.utype); ASSERT(size >= sizeof(uns)); int old_nr = * (int*) (old_p - size); - int taken = MIN(number, item->number-old_nr); + int taken = MIN(number, ABS(item->number)-old_nr); *processed = taken; // stretch the dynamic array void *new_p = cf_malloc((old_nr + taken + 1) * size) + size; @@ -802,7 +802,7 @@ interpret_set_item(struct cf_item *item, int number, byte **pars, int *processed case CC_DYNAMIC: if (!allow_dynamic) return "Dynamic array cannot be used here"; - taken = MIN(number, item->number); + taken = MIN(number, ABS(item->number)); *processed = taken; return interpret_set_dynamic(item, taken, pars, ptr); case CC_PARSER: