summaryrefslogtreecommitdiffabout
path: root/parsing.c
Unidiff
Diffstat (limited to 'parsing.c') (more/less context) (ignore whitespace changes)
-rw-r--r--parsing.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/parsing.c b/parsing.c
index 8e15e5a..36b0f0c 100644
--- a/parsing.c
+++ b/parsing.c
@@ -71,11 +71,13 @@ int cgit_read_config(const char *filename, configfn fn)
71 FILE *f; 71 FILE *f;
72 72
73 /* cancel the reading of yet another configfile after 16 invocations */ 73 /* cancel deeply nested include-commands */
74 if (nesting++ > 16) 74 if (nesting > 8)
75 return -1; 75 return -1;
76 if (!(f = fopen(filename, "r"))) 76 if (!(f = fopen(filename, "r")))
77 return -1; 77 return -1;
78 nesting++;
78 while((len = read_config_line(f, line, &value, sizeof(line))) > 0) 79 while((len = read_config_line(f, line, &value, sizeof(line))) > 0)
79 (*fn)(line, value); 80 (*fn)(line, value);
81 nesting--;
80 fclose(f); 82 fclose(f);
81 return 0; 83 return 0;
@@ -109,5 +111,5 @@ int cgit_parse_query(char *txt, configfn fn)
109 111
110 t = txt = xstrdup(txt); 112 t = txt = xstrdup(txt);
111 113
112 while((c=*t) != '\0') { 114 while((c=*t) != '\0') {
113 if (c=='=') { 115 if (c=='=') {
@@ -214,5 +216,5 @@ struct taginfo *cgit_parse_tag(struct tag *tag)
214 return 0; 216 return 0;
215 } 217 }
216 218
217 ret = xmalloc(sizeof(*ret)); 219 ret = xmalloc(sizeof(*ret));
218 ret->tagger = NULL; 220 ret->tagger = NULL;