From a635e7c2d6d14d7d0c14849047ef282f432b3c94 Mon Sep 17 00:00:00 2001 From: Philippe Pepiot Date: Tue, 20 Apr 2010 00:13:39 +0200 Subject: [PATCH] Parse: fix possible issue in fetch_section_first() --- src/parse/parse.c | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/src/parse/parse.c b/src/parse/parse.c index 67588e8..d7ea435 100644 --- a/src/parse/parse.c +++ b/src/parse/parse.c @@ -493,24 +493,29 @@ fetch_section(struct conf_sec *s, char *name) struct conf_sec * fetch_section_first(struct conf_sec *s, char *name) { - struct conf_sec *sec; + struct conf_sec *sec, *ret = NULL; if (!name) return NULL; if (!s) + { TAILQ_FOREACH(sec, &config, entry) - if (!strcmp(sec->name, name)) - return sec; + if (!strcmp(sec->name, name)) { + ret = sec; + break; + } + } + else + { + TAILQ_FOREACH(sec, &s->sub, entry) + if (!strcmp(sec->name, name)) { + ret = sec; + break; + } + } - if(!sec) - return NULL; - - TAILQ_FOREACH(sec, &s->sub, entry) - if (!strcmp(sec->name, name)) - return sec; - - return NULL; + return ret; } size_t