@@ -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+
190206static 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