Skip to content

Commit 9571d5c

Browse files
committed
config_format: Add validations for invalid paremeters on service
Signed-off-by: Hiroshi Hatake <hiroshi@chronosphere.io>
1 parent fe2a683 commit 9571d5c

1 file changed

Lines changed: 30 additions & 14 deletions

File tree

src/config_format/flb_config_format.c

Lines changed: 30 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -187,40 +187,56 @@ int flb_cf_set_origin_format(struct flb_cf *cf, int format)
187187
return 0;
188188
}
189189

190+
static int section_name_check(char *name, int len, const char *expected)
191+
{
192+
size_t expected_length;
193+
194+
expected_length = strlen(expected);
195+
if (len < 0 || (size_t) len != expected_length) {
196+
return FLB_FALSE;
197+
}
198+
199+
if (strncasecmp(name, expected, expected_length) == 0) {
200+
return FLB_TRUE;
201+
}
202+
203+
return FLB_FALSE;
204+
}
205+
190206
static enum section_type get_section_type(char *name, int len)
191207
{
192-
if (strncasecmp(name, "service", len) == 0) {
208+
if (section_name_check(name, len, "service") == FLB_TRUE) {
193209
return FLB_CF_SERVICE;
194210
}
195-
else if (strncasecmp(name, "parser", len) == 0) {
211+
else if (section_name_check(name, len, "parser") == FLB_TRUE) {
196212
return FLB_CF_PARSER;
197213
}
198-
else if (strncasecmp(name, "multiline_parser", len) == 0) {
214+
else if (section_name_check(name, len, "multiline_parser") == FLB_TRUE) {
199215
return FLB_CF_MULTILINE_PARSER;
200216
}
201-
else if (strncasecmp(name, "stream_processor", len) == 0) {
217+
else if (section_name_check(name, len, "stream_processor") == FLB_TRUE) {
202218
return FLB_CF_STREAM_PROCESSOR;
203219
}
204-
else if (strncasecmp(name, "plugins", len) == 0) {
220+
else if (section_name_check(name, len, "plugins") == FLB_TRUE) {
205221
return FLB_CF_PLUGINS;
206222
}
207-
else if (strncasecmp(name, "upstream_servers", len) == 0) {
223+
else if (section_name_check(name, len, "upstream_servers") == FLB_TRUE) {
208224
return FLB_CF_UPSTREAM_SERVERS;
209225
}
210-
else if (strncasecmp(name, "custom", len) == 0 ||
211-
strncasecmp(name, "customs", len) == 0) {
226+
else if (section_name_check(name, len, "custom") == FLB_TRUE ||
227+
section_name_check(name, len, "customs") == FLB_TRUE) {
212228
return FLB_CF_CUSTOM;
213229
}
214-
else if (strncasecmp(name, "input", len) == 0 ||
215-
strncasecmp(name, "inputs", len) == 0) {
230+
else if (section_name_check(name, len, "input") == FLB_TRUE ||
231+
section_name_check(name, len, "inputs") == FLB_TRUE) {
216232
return FLB_CF_INPUT;
217233
}
218-
else if (strncasecmp(name, "filter", len) == 0 ||
219-
strncasecmp(name, "filters", len) == 0) {
234+
else if (section_name_check(name, len, "filter") == FLB_TRUE ||
235+
section_name_check(name, len, "filters") == FLB_TRUE) {
220236
return FLB_CF_FILTER;
221237
}
222-
else if (strncasecmp(name, "output", len) == 0 ||
223-
strncasecmp(name, "outputs", len) == 0) {
238+
else if (section_name_check(name, len, "output") == FLB_TRUE ||
239+
section_name_check(name, len, "outputs") == FLB_TRUE) {
224240
return FLB_CF_OUTPUT;
225241
}
226242

0 commit comments

Comments
 (0)