From 5e51a4018ee3c525bb13ad2221c3f558a8b695e5 Mon Sep 17 00:00:00 2001 From: Robert Spalek Date: Tue, 25 Apr 2006 23:39:03 +0200 Subject: [PATCH] conf2: dynamic arrays allow negative maximal length --- lib/conf2.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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: -- 2.39.2