diff --git a/bin/ipfix.c b/bin/ipfix.c index 9029da6..e20303f 100644 --- a/bin/ipfix.c +++ b/bin/ipfix.c @@ -1217,6 +1217,13 @@ ipfix_template_record_t *ipfix_template_record; // a template flowset can contain multiple records ( templates ) while ( size_left ) { uint32_t id; + + if ( size_left < 4 ) { + LogError("Process_ipfix [%u] Template withdraw size error at %s line %u" , + exporter->info.id, __FILE__, __LINE__, strerror (errno)); + size_left = 0; + continue; + } // map next record. ipfix_template_record = (ipfix_template_record_t *)DataPtr; @@ -1300,7 +1307,7 @@ uint16_t offset_std_sampler_interval, offset_std_sampler_algorithm, found_std_sa uint16_t id, length; int Enterprise; - if ( size_left && size_left < 4 ) { + if ( size_left < 4 ) { LogError("Process_ipfix [%u] Template size error at %s line %u" , exporter->info.id, __FILE__, __LINE__, strerror (errno)); return;