diff options
Diffstat (limited to 'src/conf.c')
-rw-r--r-- | src/conf.c | 17 |
1 files changed, 6 insertions, 11 deletions
diff --git a/src/conf.c b/src/conf.c index dc45ed2b9..0b3e0df5f 100644 --- a/src/conf.c +++ b/src/conf.c @@ -41,6 +41,7 @@ #define CONF_REPEATABLE_MASK 0x01 #define CONF_BLOCK_MASK 0x02 +#define CONF_LINE_TOKEN_MAX 3 typedef struct _configEntry { unsigned char mask; @@ -193,15 +194,16 @@ static ConfigParam *readConfigBlock(FILE * fp, int *count, char *string) { ConfigParam *ret = newConfigParam(NULL, *count); - char **array; int i; int numberOfArgs; int argsMinusComment; while (myFgets(string, MAX_STRING_SIZE, fp)) { + char *array[CONF_LINE_TOKEN_MAX] = { NULL }; + (*count)++; - numberOfArgs = buffer2array(string, &array); + numberOfArgs = buffer2array(string, array, CONF_LINE_TOKEN_MAX); for (i = 0; i < numberOfArgs; i++) { if (array[i][0] == CONF_COMMENT) @@ -211,13 +213,11 @@ static ConfigParam *readConfigBlock(FILE * fp, int *count, char *string) argsMinusComment = i; if (0 == argsMinusComment) { - freeArgArray(array, numberOfArgs); continue; } if (1 == argsMinusComment && 0 == strcmp(array[0], CONF_BLOCK_END)) { - freeArgArray(array, numberOfArgs); break; } @@ -238,8 +238,6 @@ static ConfigParam *readConfigBlock(FILE * fp, int *count, char *string) } addBlockParam(ret, array[0], array[1], *count); - - freeArgArray(array, numberOfArgs); } return ret; @@ -256,7 +254,6 @@ void readConf(char *file) ConfigEntry *entry; void *voidPtr; ConfigParam *param; - char **array; if (!(fp = fopen(file, "r"))) { ERROR("problems opening file %s for reading: %s\n", file, @@ -265,9 +262,10 @@ void readConf(char *file) } while (myFgets(string, MAX_STRING_SIZE, fp)) { + char *array[CONF_LINE_TOKEN_MAX] = { NULL }; count++; - numberOfArgs = buffer2array(string, &array); + numberOfArgs = buffer2array(string, array, CONF_LINE_TOKEN_MAX); for (i = 0; i < numberOfArgs; i++) { if (array[i][0] == CONF_COMMENT) @@ -277,7 +275,6 @@ void readConf(char *file) argsMinusComment = i; if (0 == argsMinusComment) { - freeArgArray(array, numberOfArgs); continue; } @@ -316,8 +313,6 @@ void readConf(char *file) param = newConfigParam(array[1], count); insertInListWithoutKey(entry->configParamList, param); - - freeArgArray(array, numberOfArgs); } fclose(fp); } |